将此字符串转换为 NSDate
Convert this String to NSDate
基本上我要做的是将 string
转换为 date
。 string
等于以下内容:
let myDateString = "01-53-36-24-75"
这是它的格式:
Days-Hours-Minutes-Seconds-Milliseconds
所以如果我没有这些日子,我会创建一个 dateFormatter
,然后执行以下操作:
let separator = "-"
self.dateFormatter.dateFormat = "HH\(separator)mm\(separator)ss\(separator)SS"
然后我会将 myDateString
从 self.dateFormatter
转换为 date
。但是现在我有几天了,(过去的日子,)我不知道如何将 string - myDateString
转换为 date
。
dd 会给你一天。
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
将是年、月、日、时、分、秒、毫秒
如果要支持以下日期格式:
Days-Hours-Minutes-Seconds-Milliseconds
那么你需要这样的格式:
dateFormatter.dateFormat = "DDD-HH-mm-ss-SS"
DDD 表示您想要一年中的第几天。
要从 dateFormatter
获取 date 对象(我们假设它是一个 NSDateFormatter
实例),那么您将使用 dateFromString
方法。例如:
var myDate: NSDate? = dateFormatter.dateFromString("01-53-36-24-75")
请注意,dateFromString returns 是可选的。因此,如果您的格式无法转换给定的字符串,则返回 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 for the symbols used in date formatters. (This link was referred to by the Apple's Date Formatters 页。)
基本上我要做的是将 string
转换为 date
。 string
等于以下内容:
let myDateString = "01-53-36-24-75"
这是它的格式:
Days-Hours-Minutes-Seconds-Milliseconds
所以如果我没有这些日子,我会创建一个 dateFormatter
,然后执行以下操作:
let separator = "-"
self.dateFormatter.dateFormat = "HH\(separator)mm\(separator)ss\(separator)SS"
然后我会将 myDateString
从 self.dateFormatter
转换为 date
。但是现在我有几天了,(过去的日子,)我不知道如何将 string - myDateString
转换为 date
。
dd 会给你一天。
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
将是年、月、日、时、分、秒、毫秒
如果要支持以下日期格式:
Days-Hours-Minutes-Seconds-Milliseconds
那么你需要这样的格式:
dateFormatter.dateFormat = "DDD-HH-mm-ss-SS"
DDD 表示您想要一年中的第几天。
要从 dateFormatter
获取 date 对象(我们假设它是一个 NSDateFormatter
实例),那么您将使用 dateFromString
方法。例如:
var myDate: NSDate? = dateFormatter.dateFromString("01-53-36-24-75")
请注意,dateFromString returns 是可选的。因此,如果您的格式无法转换给定的字符串,则返回 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 for the symbols used in date formatters. (This link was referred to by the Apple's Date Formatters 页。)