参考IOS8 SDK
IOS提供获取当前时间的方法,包含日期date和time,可以设置显示的格式(系统和自定义)和地区时间。
1、获取当前时间的方法(可以更改locale我理解不同地区的时间)
1.1获取当前时间,格式显示默认
系统自带时间显示格式
NSDateFormatterNoStyle:不会显示日期和时间
NSDateFormatterShortStyle :11/29/14, 10:46 PM
NSDateFormatterMediumStyle :Nov 23, 1937” or “3:30:32 PM
NSDateFormatterLongStyle:November 23, 1937” or “3:30:32 PM PST
NSDateFormatterFullStyle:Tuesday, April 12, 1952 AD” or “3:30:42 PM Pacific Standard Time
//把时间NSDate 转换成字符串stringFormatter
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateStyle = NSDateFormatterShortStyle;//NSDateFormatterNoStyle;
formatter.timeStyle = NSDateFormatterShortStyle;//NSDateFormatterNoStyle;
NSString *str = [formatter stringFromDate:[NSDate date]];
str = [NSString stringWithFormat:@"current time is %@", str];
//配合
//str = [NSString stringWithFormat:@"Date for locale is %@ %@",[[formatter locale]localeIdentifier],str];
NSLog(@"log -------- %@",str);
//output:log -------- current time is 11/29/14, 10:46 PM
获取本地化封装信息,时间地区
[[NSLocale currentLocale]localeIdentifier]
1.2 以1 January 2001, GMT为起始点计算显示时间,可以指定时间地区
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateStyle = NSDateFormatterMediumStyle;//NSDateFormatterShortStyle;//NSDateFormatterNoStyle;
formatter.timeStyle = NSDateFormatterMediumStyle;//NSDateFormatterShortStyle;//NSDateFormatterNoStyle;
//以秒为单位指定距离参考时间的时间
NSDate *currentdate = [NSDate dateWithTimeIntervalSinceReferenceDate:118860];
//设置时间地区
NSLocale *currentlocale = [[NSLocale alloc]initWithLocaleIdentifier:@"en_US"];
[formatter setLocale:currentlocale];
//把时间NSDate 转换成字符串stringFormatter
NSString *str = [formatter stringFromDate:currentdate];
str = [NSString stringWithFormat:@"current locale is %@ current time is %@",[[NSLocale currentLocale]localeIdentifier], str];
NSLog(@"log -------- %@",str);
//output:log -------- current locale is en_US current time is Jan 2, 2001, 5:01:00 PM
1.3有限自定义时间显示格式
Pattern | Result (in a particular locale) |
---|---|
yyyy.MM.dd G 'at' HH:mm:ss zzz | 1996.07.10 AD at 15:08:56 PDT |
EEE, MMM d, ''yy | Wed, July 10, '96 |
h:mm a | 12:08 PM |
hh 'o''clock' a, zzzz | 12 o'clock PM, Pacific Daylight Time |
K:mm a, z | 0:00 PM, PST |
yyyyy.MMMM.dd GGG hh:mm aaa | 01996.July.10 AD 12:08 PM |
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
//formatter.dateStyle = NSDateFormatterMediumStyle;//NSDateFormatterShortStyle;//NSDateFormatterNoStyle;
//formatter.timeStyle = NSDateFormatterMediumStyle;//NSDateFormatterShortStyle;//NSDateFormatterNoStyle;
//以秒为单位指定距离参考时间的时间
// NSDate *currentdate = [NSDate dateWithTimeIntervalSinceReferenceDate:118860];
//设置时间地区
// NSLocale *currentlocale = [[NSLocale alloc]initWithLocaleIdentifier:@"en_US"];
// [formatter setLocale:currentlocale];
//把时间NSDate 转换成字符串stringFormatter
[formatter setDateFormat:@"yyyy.MM.dd G 'at' HH:mm:ss zzz"];
NSString *str = [formatter stringFromDate:[NSDate date]];
str = [NSString stringWithFormat:@"current locale is %@ current time is %@",[[NSLocale currentLocale]localeIdentifier], str];
NSLog(@"log -------- %@",str);
//output:log -------- current locale is en_US current time is 2014.11.30 AD at 08:33:13 GMT+8