美文网首页买不来的iOS实用技巧
苹果官方类库中NSDateFormatter的小bug

苹果官方类库中NSDateFormatter的小bug

作者: 我是乔忘记疯狂 | 来源:发表于2016-04-26 23:00 被阅读472次

    不知道有多少人和我一样是今天才知道这个问题的

    let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    let date = formatter.dateFromString("1987-04-12") // nil
    

    这个问题在 StackOverflow 上是有人提过的,点击查看
    其实主要跟一些国家实行 夏时制(Daylight saving time) 有关系,尤其是美国

    解决办法我是尝试这样增加一句代码

    let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
    let date = formatter.dateFromString("1987-04-12") // Apr 12, 1987, 1:00 AM
    

    最后推荐一个夏时制的相关阅读,高晓松的 鱼羊野史 第1卷 中1月6日那一章,有讲到美国于1974年1月6日开始实行夏时制并一直到今天,还讲到其他一些相关的有意思的事情。

    相关文章

      网友评论

        本文标题:苹果官方类库中NSDateFormatter的小bug

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