您的位置:首页 > 移动开发 > Objective-C

NSData NSDateFormatter获取当前时间常用功能总结

2014-11-29 22:19 405 查看
参考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有限自定义时间显示格式

PatternResult (in a particular locale)
yyyy.MM.dd G 'at' HH:mm:ss zzz1996.07.10 AD at 15:08:56 PDT
EEE, MMM d, ''yyWed, July 10, '96
h:mm a12:08 PM
hh 'o''clock' a, zzzz12 o'clock PM, Pacific Daylight Time
K:mm a, z0:00 PM, PST
yyyyy.MMMM.dd GGG hh:mm aaa01996.July.10 AD 12:08 PM
http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios object nsdate