将此String转换为NSDate

时间:2015-09-02 22:50:27

标签: ios string swift nsdate nsdateformatter

基本上我尝试做的是将string转换为datestring等于以下内容:

let myDateString = "01-53-36-24-75"

这是它的格式:

  

天-小时 - 分钟 - 秒 - 毫秒

所以如果我没有Days,我只会创建一个dateFormatter,并执行以下操作:

let separator = "-"
self.dateFormatter.dateFormat = "HH\(separator)mm\(separator)ss\(separator)SS"

然后我会将myDateString转换为来自date的{​​{1}}。但是现在我已经过了几天(过去的日子),我不知道如何将self.dateFormatter转换为string - myDateString

2 个答案:

答案 0 :(得分:0)

dd会给你一天。

let formatter = NSDateFormatter()

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"

将是年,月,日,小时,分钟,秒,毫秒

答案 1 :(得分:0)

如果您想支持以下日期格式:

Days-Hours-Minutes-Seconds-Milliseconds

然后你需要有这样的格式:

dateFormatter.dateFormat = "DDD-HH-mm-ss-SS"

DDD 表示您想要一年中的

要从dateFormatter获取日期对象(我们假设它是NSDateFormatter个实例),那么您将使用dateFromString方法。例如:

var myDate: NSDate? = dateFormatter.dateFromString("01-53-36-24-75")

请注意dateFromString返回一个Optional。因此,如果您的格式无法转换给定字符串,则会返回nil

现在,我想指出两件事。

首先,该日期格式不提供年份值。因此,年份值将是默认年份。

第二次,日期字符串01-53-36-24-75似乎有误。具体来说,53的小时值超出范围(最大值应为23)。

无论如何,如果你运行这段代码:

    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "DDD-HH-mm-ss-SS"

    let myDateString1 = "01-53-36-24-75" // Your value
    let myDateString2 = "01-01-02-03-04" // My example value
    println("myDateString1 = \(dateFormatter.dateFromString(myDateString1))")
    println("myDateString2 = \(dateFormatter.dateFromString(myDateString2))")

控制台输出将是:

myDateString1 = nil
myDateString2 = Optional(2000-01-01 06:02:03 +0000)

如您所见,您的值已转换为nil,因为53无法转换。

我的价值的年份值转换为2000,这是默认值,因为它没有以格式或字符串指定年份。

有关日期格式化程序中使用的符号,请参阅此Date Format Patterns。 (此链接由Apple的Date Formatters页面引用。)