基本上我尝试做的是将string
转换为date
。 string
等于以下内容:
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
。
答案 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页面引用。)