首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将字符串日期转换为NSDate?

如何将字符串日期转换为NSDate?
EN

Stack Overflow用户
提问于 2014-07-16 17:44:54
回答 10查看 199.6K关注 0票数 197

我想在Swift中将"2014-07-15 06:55:14.198000+00:00“这个字符串日期转换为NSDate。

EN

回答 10

Stack Overflow用户

发布于 2015-08-20 04:16:29

代码语言:javascript
复制
 func convertDateFormatter(date: String) -> String
 {

    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"//this your string date format
    dateFormatter.timeZone = NSTimeZone(name: "UTC")
    let date = dateFormatter.dateFromString(date)


    dateFormatter.dateFormat = "yyyy MMM EEEE HH:mm"///this is what you want to convert format
    dateFormatter.timeZone = NSTimeZone(name: "UTC")
    let timeStamp = dateFormatter.stringFromDate(date!)


    return timeStamp
}

针对Swift 3进行了更新。

代码语言:javascript
复制
func convertDateFormatter(date: String) -> String
{

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"//this your string date format
    dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone!
    let date = dateFormatter.date(from: date)


    dateFormatter.dateFormat = "yyyy MMM EEEE HH:mm"///this is what you want to convert format
    dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone!
    let timeStamp = dateFormatter.string(from: date!)


    return timeStamp
}
票数 56
EN

Stack Overflow用户

发布于 2015-03-30 07:39:47

如果您需要经常将字符串解析为日期,则可能需要将该功能移动到扩展中。我创建了一个sharedCode.swift文件,并将我的扩展名放在那里:

代码语言:javascript
复制
extension String
{   
    func toDateTime() -> NSDate
    {
        //Create Date Formatter
        let dateFormatter = NSDateFormatter()

        //Specify Format of String to Parse
        dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSSxxx"

        //Parse into NSDate
        let dateFromString : NSDate = dateFormatter.dateFromString(self)!

        //Return Parsed Date
        return dateFromString
    }
}

然后,如果你想把你的字符串转换成一个NSDate,你可以写一些类似这样的代码:

代码语言:javascript
复制
var myDate = myDateString.toDateTime()
票数 15
EN

Stack Overflow用户

发布于 2016-01-05 05:32:59

Swift支持扩展,通过扩展,您可以向现有的classstructureenumerationprotocol类型添加新功能。

您可以通过使用NSDate关键字扩展对象来向extension对象添加新的init函数。

代码语言:javascript
复制
extension NSDate
{
    convenience
    init(dateString:String) {
        let dateStringFormatter = NSDateFormatter()
        dateStringFormatter.dateFormat = "yyyyMMdd"
        dateStringFormatter.locale = NSLocale(localeIdentifier: "fr_CH_POSIX")
        let d = dateStringFormatter.dateFromString(dateString)!
        self.init(timeInterval:0, sinceDate:d)
    }
} 

现在,您可以使用以下命令初始化NSDate对象:

代码语言:javascript
复制
let myDateObject = NSDate(dateString:"2010-12-15 06:00:00")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24777496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档