zoukankan      html  css  js  c++  java
  • SugarSync网盘之NSDateFormatter

    NSDateFormatter

    在获取sugarsync网盘的accessToken时候,得到了过期时间。但是这里的过期时间采用的是世界标准时间UTC,而该网盘是国外的,所以在国内显示的时间就不对了,需要转换为当地时间。这就涉及到NSDateFormatter类。

    经常看到在取时间的时候,往往要通过NSDateFormatter转换一下,因为[NSDate date]得到的时间是世界标准时间(格林尼治时间),与本地时间存在时差。所以需要用如下方式来转换得到本地时间字符串:

    NSDate* date = [NSDate date];

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

    [formatter setDateFormatter:@”yyyy-MM-dd HH:mm:ss”];

    NSString* dateStr = [formatter stringFromDate:date];

    这里的HH表示24小时时间制,也可以采用hh的12小时时间制,那一般还需要加上“aa”表示am或者pm;如果加上EEEE,则表示星期几。至于其他的转换字符串格式什么的就不讨论了,这里要重点讨论一下从时间字符串转换得到NSDate对象。

    当然[formatter dateFromString:]方法是需要采用的。UTC时间字符串例如下面的示例“2014-3-24T15:16:23+0800”,这里包含了日期和时间,还有时区。采用上面的formatter是不行的;有时候UTC的字符串比较长,例如“2014-3-24T15:16:23.561+07:00”。好吧,这样转换也会失败的。

    针对第一种UTC时间字符串我们需要换一个formatter:

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

    [formatter setDateFormatter:@”yyyy-MM-dd’T’ HH:mm:ssZ”];

    [formatter setTimeZone:[NSTimeZone localTimeZone]];

    NSDate* date = [formatter dateFromString:expirationDate];

             第二种UTC时间字符串则需要先将其变换为第一种字符串,再用formatter。

  • 相关阅读:
    bootstrap
    bootstrap
    IDEA 配置maven
    jQuery
    jQuery
    jQuery
    jQuery
    Jquery
    【k8s】Pod-metadata
    【k8s】terminationMessagePolicy
  • 原文地址:https://www.cnblogs.com/A-Long-Way-Chris/p/3621433.html
Copyright © 2011-2022 走看看