NSDate() - Playground 与 Swift Xcode
Posted
技术标签:
【中文标题】NSDate() - Playground 与 Swift Xcode【英文标题】:NSDate() - Playground vs. Swift Xcode 【发布时间】:2015-10-13 13:25:53 【问题描述】:我注意到,当我在 Swift 操场上时,对 NSDate() 的调用会生成具有以下格式的日期:
< date time AM|PM >
然而,在 xcode/app 内部,NSDate() 会生成一个具有这种格式的日期
< date time UTC >
我不清楚为什么会有这样的差异?如何强制 xcode 始终将 NSDate 生成为< date time AM|PM >
?
【问题讨论】:
【参考方案1】:NSDate
用于表示一个时间点。它没有任何格式的概念。
你想用来打印NSDate
的内容是NSDateFormatter
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle
dateFormatter.timeStyle = NSDateFormatterStyle.MediumStyle
print(dateFormatter.stringFromDate(NSDate()))
【讨论】:
【参考方案2】:NSDate
本身没有任何时区概念。来自文档
NSDate的唯一原始方法,timeIntervalSinceReferenceDate, 为 NSDate 接口中的所有其他方法提供了基础。 此方法返回相对于绝对参考的时间值 日期 - 2001 年 1 月 1 日 00:00:00 UTC。
在操场上,如果您只写let date = NSDate()
,它会自行进行某种日期格式化(这很有趣,但不应该被期望)。如果你print(date)
if 会告诉你日期实际包含的内容。
如果您想在应用内格式化日期,您应该考虑使用 NSDateFormatter
类。
【讨论】:
以上是关于NSDate() - Playground 与 Swift Xcode的主要内容,如果未能解决你的问题,请参考以下文章
Hacker‘s Playground(SSTF) 2021 Web
Hacker‘s Playground(SSTF) 2021 Web
[Cypress] Test React’s Controlled Input with Cypress Selector Playground