美文网首页
时间格式和时区

时间格式和时区

作者: Switch_A | 来源:发表于2017-10-18 12:17 被阅读0次

    /*

    G:        公元时代,例如AD公元

    yy:    年的后2位

    yyyy:    完整年

    MM:    月,显示为1-12,带前置0

    MMM:    月,显示为英文月份简写,如 Jan

    MMMM:    月,显示为英文月份全称,如 Janualy

    dd:    日,2位数表示,如02

    d:        日,1-2位显示,如2,无前置0

    EEE:    简写星期几,如Sun

    EEEE:    全写星期几,如Sunday

    aa:    上下午,AM/PM

    H:        时,24小时制,0-23

    HH:    时,24小时制,带前置0

    h:        时,12小时制,无前置0

    hh:    时,12小时制,带前置0

    m:        分,1-2位

    mm:    分,2位,带前置0

    s:        秒,1-2位

    ss:    秒,2位,带前置0

    S:        毫秒

    Z:        GMT(时区)

    //任何NSTimeZone对象所代表的时区都是相对于GMT的, iOS中的时间类NSDate所获取到的时间, 都是相对于GMT的.

    1、NSTimeZone 时区的创建

    NSTimeZone *zone1 = [[NSTimeZone alloc] init];

    // 根据时区名称创建

    NSTimeZone *zone2 = [[NSTimeZone alloc] initWithName:@"America/Chicago"];

    NSTimeZone *zone3 = [NSTimeZone timeZoneWithName:@"America/Chicago"];

    // 根据时区缩写创建

    NSTimeZone *zone4 = [NSTimeZone timeZoneWithAbbreviation:@"EST"];

    // 根据零时区的秒数偏移量创建

    NSTimeZone *zone5 = [NSTimeZone timeZoneForSecondsFromGMT:28800];

    2、NSTimeZone 时区的设置

    // 设置默认的时区

    [NSTimeZone setDefaultTimeZone:[[NSTimeZone alloc] initWithName:@"America/Chicago"]];

    NSTimeZone *systemZone = [NSTimeZone systemTimeZone];

    // 本地时区可以被修改,而系统时区不能修改。

    NSTimeZone *localZone = [NSTimeZone localTimeZone];

    NSTimeZone *defaultZone = [NSTimeZone defaultTimeZone];

    // NSCalendar 设置时区

    //设置时区,设置为 GMT+8,即北京时间(+8)

    NSCalendar *calendar = [NSCalendar currentCalendar];

    [calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CET"]];

    [calendar setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:+28800]];

    // NSDateFormatter 设置时区

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    // 设置时区,设置为 GMT

    [formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

    3、NSTimeZone 时区的获取

    // 获取系统时区

    NSTimeZone *zone1 = [NSTimeZone systemTimeZone];

    // 获取本地时区

    NSTimeZone *zone2 = [NSTimeZone localTimeZone];

    // 获取默认时区

    NSTimeZone *zone3 = [NSTimeZone defaultTimeZone];

    4、获取时区的名称

    // 获取所有已知的时区名称

    NSArray *zoneNames = [NSTimeZone knownTimeZoneNames];

    NSTimeZone *zone = [NSTimeZone localTimeZone];

    // 获取指定时区的名称

    NSString *strZoneName = [zone name];

    5、获取时区的缩写

    // 获取所有已知的时区缩写

    NSDictionary *zoneAbbreviations = [NSTimeZone abbreviationDictionary];

    NSTimeZone *zone = [NSTimeZone localTimeZone];

    // 获取指定时区的缩写

    NSString *zoneAbbreviation1 = [zone abbreviation];

    // 获取指定时间所在时区名称缩写

    NSString *zoneAbbreviation2 = [zone abbreviationForDate:[NSDate date]];

    6、获取与零时区的间隔秒数

    NSTimeZone *zone = [NSTimeZone localTimeZone];

    // 获取当前时区与零时区的间隔秒数

    NSInteger seconds1 = [zone secondsFromGMT];

    // 获取指定时间所在时区与零时区的间隔秒数

    NSInteger seconds2 = [zone secondsFromGMTForDate:[NSDate date]];

    7、时区差值转换

    // 得到当前时间(世界标准时间 UTC/GMT)

    NSDate *date = [NSDate date];

    // 设置系统时区为本地时区

    NSTimeZone *zone = [NSTimeZone systemTimeZone];

    // 计算本地时区与 GMT 时区的时间差

    NSInteger interval = [zone secondsFromGMT];

    // 在 GMT 时间基础上追加时间差值,得到本地时间

    date = [date dateByAddingTimeInterval:interval];

    */

    相关文章

      网友评论

          本文标题:时间格式和时区

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