繁体   English   中英

如何从Swift 3中的String获取日期?

[英]How to get Date from String in swift 3?

我已经将时间戳保存在数据库中,例如:

"NSDate()" // which save Date like this: 2017-03-10 22:53:30 +0000

现在,我需要从该字符串获取Date,我尝试了每种格式,但始终返回nil。

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss ZZZ"
    dateFormatter.locale = Locale(identifier: "en_US")
    print(dateFormatter.date(from: "2017-03-10 22:53:30 +0000") ?? "No Value") // always return No Value

在这里,我尝试了多种格式,例如:yyyy-MM-dd hh:mm:ss + zzzz yyyy-MM-dd hh:mm:ss xx

已经看到很多答案,但是没有答案正在使用这种格式的日期“ 2017-03-10 22:53:30 +0000”

军事时间(24小时制)使用大写字母“ H”。 尝试使用以下格式字符串:

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"

hh是12小时的时间。 如果您有24小时的填充时间,则需要HH 有关NSDateFormatter格式的更多详细信息,请访问http://nsdateformatter.com

我在将String转换为Date时使用了此代码。 斯威夫特3

extension String
{
     func  toDate( dateFormat format  : String) -> Date
    {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = format
        if let date = dateFormatter.date(from: self)
        {
            return date
        }
        print("Invalid arguments ! Returning Current Date . ")
        return Date()
    }
}

然后像这样打电话。

 print ( "2016-06-20T13:01:46.457+02:00".toDate(dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZ") )
//Capital HH for 24-Hour Time 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM