打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
与CST,UTC时间,NScalendar,NSTimeZone,NSLocale有关的用法总结
一、NSDate,NSDateformatter,获取系统时间,时区,获取UTC时间
//准备一个oc时间的格式化器
       NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
//获取并设置时间的时区,获取系统时间
       NSTimeZone *currentTimezone = [NSTimeZonesystemTimeZone];
       [formattersetTimeZone:currentTimezone];
       [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ssEEEE"];
       NSArray *currentTimeArray = [[formatterstringFromDate:[NSDate date]] componentsSeparatedByString:@""];
//获得UTC格式时间,0时区
       NSTimeInterval unixTime = [[NSDate date]timeIntervalSince1970];
//获得UTC时间
       NSDate *utcTime = [NSDatedateWithTimeIntervalSince1970:unixTime];
       NSString *utcTimeStr = [[NSString alloc]initWithFormat:@"%@\t\t",utcTime];



二、从nscalendar中获取年月日,从nstimezone中获取时区

//获得系统时间
   NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init];
  [dateformatter setTimeZone:[NSTimeZonesystemTimeZone]];
  [dateformatter setDateFormat:@"HH:mm:ss"];
   NSString * timeString=[dateformatter stringFromDate:[NSDatedate]];
   
//获得系统日期
   NSCalendar *calendar = [[NSLocale currentLocale]objectForKey:NSLocaleCalendar];//也可以使用[NSCalendar currentCalendar];
   NSUInteger mask = NSDayCalendarUnit | NSMonthCalendarUnit |NSYearCalendarUnit;//8421码二进制求和,这些枚举的声明符合MISRAC Coding Standard
   NSDateComponents * dateConponent= [calendarcomponents:mask fromDate:[NSDate date]];//NSDateComponents对象表示一个日期对象的组件——例如年,月,日和小时。如果要使一个NSDateComponents对象有意义,你必须将其与一个日历对象相关联。
   NSString *nsDateString= [NSString stringWithFormat:@"M/d/- %@", [dateConponentyear], [dateConponent month], [dateConponentday],timeString];
   
   [dateformatter release];


P.S.附录

[dateformatter setDateFormat:@"HH:mm:ss"]格式化参数如下: 
G:公元时代,例如AD公元 
yy: 年的后2位 
yyyy: 完整年 
MM:月,显示为1-12 
MMM: 月,显示为英文月份简写,如Jan 
MMMM: 月,显示为英文月份全称,如Janualy 
dd:日,2位数表示,如02 
d: 日,1-2位显示,如2 
EEE:简写星期几,如Sun 
EEEE:全写星期几,如Sunday 
aa:上下午,AM/PM 
H:时,24小时制,0-23 
K:时,12小时制,0-11 
m: 分,1-2位 
mm: 分,2位 
s: 秒,1-2位 
ss: 秒,2位 
S: 毫秒 

[calendarcomponents:mask fromDate:[NSDatedate]]中的mark来自多个枚举:
typedefCF_OPTIONS(CFOptionFlags, CFCalendarUnit) {
   kCFCalendarUnitEra = (1UL <<1),//unsigned long,枚举被定义为8421码
   kCFCalendarUnitYear = (1UL <<2),
   kCFCalendarUnitMonth = (1UL <<3),
   kCFCalendarUnitDay = (1UL <<4),
   kCFCalendarUnitHour = (1UL<< 5),
   kCFCalendarUnitMinute = (1UL<< 6),
   kCFCalendarUnitSecond = (1UL<< 7),
   kCFCalendarUnitWeek = (1UL<< 8) ,
   kCFCalendarUnitWeekday = (1UL<< 9),
   kCFCalendarUnitWeekdayOrdinal = (1UL<< 10),
   kCFCalendarUnitQuarter CF_ENUM_AVAILABLE(10_6,4_0) = (1UL << 11),
   kCFCalendarUnitWeekOfMonthCF_ENUM_AVAILABLE(10_7, 5_0) = (1UL<< 12),
   kCFCalendarUnitWeekOfYearCF_ENUM_AVAILABLE(10_7, 5_0) = (1UL<< 13),
   kCFCalendarUnitYearForWeekOfYearCF_ENUM_AVAILABLE(10_7, 5_0) = (1UL<< 14),
};

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IOS时间与日期处理
iOS开发 NSDate的相关属性和使用
时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone)
UIDatePicker的使用
这是一篇写给新手的NSDate教程(Swift版)
NSDate NSCalendar(日历立法) NSDateComponents(日期组件)的一些用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服