首页 > 解决方案 > iOS Dateformatter 从字符串转换返回 nil

问题描述

我有一个关于 dateFormatter 将字符串转换为日期的问题。因为我尝试转换日期字符串,当我使用19590401.
但是当我使用19590402时,它似乎工作正常。
我的代码有什么问题?
我无法修复这个错误?
谢谢。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let dateString: String = "19590401"
                
        let format: DateFormatter = DateFormatter()
        format.dateFormat = "yyyyMMdd"
        format.locale = Locale(identifier: "zh_TW")
        format.timeZone = TimeZone(identifier: "UTC+8")
        
        if let date:Date = format.date(from: dateString) {
            print("aaa : \(date)")
        } else {
            print("aaa : nil") //Always return nil.
        }
        
    }

}

标签: iosswiftdatensdateformatterdate-format

解决方案


台湾夏令时于 1959 年 4 月 1 日午夜更改,因此不存在 00:00

https://www.timeanddate.com/time/change/taiwan?year=1959


推荐阅读