美文网首页iOS Developer
时间日期和日历

时间日期和日历

作者: osbornZ | 来源:发表于2017-06-22 20:18 被阅读97次

    时区
    GTM 0时区; 中国则为东八区"Asia/Shanghai",东京 “Asia/Tokyo”;其他时区可根据GMT进行配置关联;
    NSLog(@"GTM 时间:%@",[NSDate date]);

    NSDate 一个时间的管理类;

    NSDateFormatter采用iOS系统的时区作为默认值。操作系统的时区通过[[NSTimeZone localTimeZone] name]获取到。

    NSCalendar

    日历的一个相关对象,同样可以设置时区,可以计算NSDate年月日,相对时间配置关系计算和解析属性;

    NSUInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour;
    NSDateComponents *dateComponent = [calendar components:unitFlags fromDate:dateN];
    
    
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0800"]];
    [dateFormatter setDateFormat:@"HH"];
    

    踩坑

    系统的12小时制和24小时制,应该在系统语言和地区设置上应该存在系统的一个bug,当我们在12小时制下切换其中一项,系统则会重置我们的设置还原为24小时制;这时候我们如上的配置则会取不到正确时间数值,"午後4時";且时间还原展示也会存在问题;(Test:日文,印度地区)

    NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
    [dateFormatter setLocale:enUSPOSIXLocale];
    

    stackoverflow

    相关文章

      网友评论

        本文标题:时间日期和日历

        本文链接:https://www.haomeiwen.com/subject/fqtqcxtx.html