NSDate是ios中的一个保存时间的对象,其中包含了时区。通过NSLog输出的[NSDate date]是GTM时区的时间,是0时区。而中国大陆采用的是正8区。
NSLog(@"GTM 时间:%@",[NSDate date]);
2013-07-09 15:16:38.007 demo[14267:13d03] GTM 时间:2013-07-09 07:16:38 +0000
通过NSDateFormatter将NSDate类的对象输出设置好的格式。NSDateFormatter采用ios操作系统的时区作为默认值。操作系统的时区通过[[NSTimeZone localTimeZone] name]获取到。
NSLog(@"[[NSTimeZone localTimeZone] name] is %@",[[NSTimeZone localTimeZone] name]);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-d HH:mm:ss"];
将NSDateFormatter对象的时区设置"Asia/Shanghai" ,为正8区,输出结果就是我们现在看到的时间
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]];
NSString *dStr = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"时区:%@ 当地时间:%@",[[dateFormatter timeZone] name], dStr);
将NSDateFormatter对象的时区设置"GMT" ,为0区,输出结果就是看到[NSDate date]的值。
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"
NSDate是ios中的一个保存时间的对象,其中包含了时区。通过NSLog输出的[NSDate date]是GTM时区的时间,是0时区。而中国大陆采用的是正8区。通过NSDateFormatter将NSDate类的对象输出设置好的格式。NSDateFormatter采用ios操作系统的时区作为默认值。操作系统的时区通过[[NSTimeZone localTimeZone] name]获取到。NSCalendar是ios中的一个保存日历数据的对象,其中也有时区设置,道理和NSDate一样的。NSCalend
参考:http://www.iliunian.com/1105.html
一、N
SDate
N
SDate
存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间, N
SDate
类提供了创建date,比较date以及计算两个date之间间隔的功能;Date对象是不可改变的。
如果你要创建date对象并表示当前日期,你可以alloc一个N
SDate
对象并调用init初始化。
NSDat...
N
SDate
存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间,N
SDate
Formatter转换时间字符串时,默认的时区是系统时区
system
TimeZone
目前使用的时区的系统。如果当前时区不能确定,返回格林尼治时间时区。
default
TimeZone
为当前应用程序默认时区。如果没有默认时区
iOS
获取当前时间 N
SDate
(N
SCale
ndar
)获取当前时间
新人一枚,如果大家有更好的方法,请大家多多指教。。。
通过N
SDate
获取当前时间,并格式化输出,以及将已有的字符串(如:@”2015-02-12 13:23:20”)转换为N
SDate
获取争取的当地时间
Dates
N
SDate
类提供了创建date,比较date以及计算两个date之间间隔的功能。Date对象是不可改变的。
如果你要创建date对象并表示当前日期,你可以alloc一个N
SDate
对象并调用init初始化:
N
SDate
*now = [[NSDat...
N
SCale
ndar
对世界上现存的常用的历法进行了封装,既提供了不同历法的时间信息,又支持日历的计算。
N
SCale
ndar
-- 日历类,它提供了大部分的日期计算接口,并且允许您在N
SDate
和N
SDate
Components之间转换
NS
TimeZone
-- 时区信息
NSLocale -- 本地化信息
N
SDate
-- 表示一个绝对的时间点
N
SDate
Compon...
在
iOS
开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题。这里集中总结一下,以便于以后查阅和供大家参考。有我自己的理解,错漏之处请大家吐槽。
N
SDate
的8小时问题
N
SDate
转字符串时间
初始化一个N
SDate
时间[N
SDate
date],获取的是零时区的时间(格林尼治的时间: 年-月-...
Date的创建 //Date的创建(当前系统时间)
N
SDate
*currentTime = [N
SDate
date];
NSLog(@"%@",currentTime);Date相关的方法//在当前时间上追加10s
NSLog(@"%@",[currentTime dateByAddingTimeInterval:10]); //获取当前系统时区
N
SDate
*today = [N
SDate
date]; N
SCale
ndar
*cale
ndar
= [N
SCale
ndar
currentCale
ndar
]; N
SDate
Components *components = [cale
ndar
components:N
SCale
ndar
UnitYear | N
SCale
ndar
UnitMonth | N
SCale
ndar
UnitDay fromDate:today]; NSInteger year = [components year]; NSInteger month = [components month]; // 设置日期格式化对象 N
SDate
Formatter *dateFormatter = [[N
SDate
Formatter alloc] init]; [dateFormatter setDateFormat:@"MMMM yyyy"]; // 获取当前月份第一天的日期 N
SDate
Components *firstDayComponents = [[N
SDate
Components alloc] init];报红
看起来你没有给 `firstDayComponents` 对象设置时间和日期。你需要为 `firstDayComponents` 对象设置年份和月份,然后使用`N
SCale
ndar
`的 `dateFromComponents:` 方法将其转换为 `N
SDate
` 对象。以下是一个示例代码:
// 设置日期格式化对象
N
SDate
Formatter *dateFormatter = [[N
SDate
Formatter alloc] init];
[dateFormatter setDateFormat:@"MMMM yyyy"];
// 获取当前月份第一天的日期
N
SDate
*today = [N
SDate
date];
N
SCale
ndar
*cale
ndar
= [N
SCale
ndar
currentCale
ndar
];
N
SDate
Components *components = [cale
ndar
components:N
SCale
ndar
UnitYear | N
SCale
ndar
UnitMonth | N
SCale
ndar
UnitDay fromDate:today];
NSInteger year = [components year];
NSInteger month = [components month];
// 设置 firstDayComponents 对象
N
SDate
Components *firstDayComponents = [[N
SDate
Components alloc] init];
[firstDayComponents setYear:year];
[firstDayComponents setMonth:month];
[firstDayComponents setDay:1];
// 将 firstDayComponents 转换为 N
SDate
对象
N
SDate
*firstDateOfMonth = [cale
ndar
dateFromComponents:firstDayComponents];
这样,`firstDateOfMonth` 对象就是当前月份的第一天的日期。
[self.nextResponder touchesBegan:touches withEvent:event];
} else {
[super touchesEnded:touches withEvent:event];
Java和Objective-C中字符编码及DES加密解密
xiangxx@酷:
中文字符ASCII码和NSString相互转换
景超叔叔: