2016-09-27 18 views
0

如果您在美国的游乐场这样一行:Swift 3操场日志以本地格式显示。怎么样?

let today = Date() 

你会看到类似这样的输出源代码的权利:

"Sep 26, 2016, 8:17 PM" 

这似乎是日期,使用中等日期和时间样式显示在当地时区中。

这是如何工作的?

如果您尝试打印日期:

print("today = \(today)" 

你会看到“今天= 2016年9月27日0点十八分55秒+0000 \ n”,这是UTC,并且似乎是unix日期格式。

当您第一次创建日期时,游乐场使用什么功能来显示日期?有没有办法从代码或调试控制台获得输出格式?

到现在为止,我已经创建了一个日期格式,我用它来登录日期,在控制台中显示出来,等

+0

你可以继承和覆盖符合[CustomPlaygroundQuicklookable](https://developer.apple.com/reference/swift/customplaygroundquicklookable) – Alexander

+0

这不是我要求的。我希望能够在代码中使用'print(aDate)'或在调试器控制台中使用'e aDate',并在当前时区和区域设置中获取中等格式的日期。 –

+0

我已经为Date创建了一个扩展,让我说print(aDate.localDateString),但显然能够以中等格式在用户的语言环境中显示日期的功能潜伏在某个地方。也许它只是在游乐场? –

回答

2

它潜伏在CustomPlaygroundQuickLookable协议,Date符合:

if case .text(let str) = today.customPlaygroundQuickLook { 
    print(str) 
} 
+0

呃。我希望日期的正常描述方法可以登录本地时区和区域设置,并且可以选择以UTC显示。 –

+0

与我在SO上看到的日期有关的大多数问题都与时区有关。我希望Apple也做出这样的改变 –

+0

它很常见,希望能够在当地时区登录日期。更常见,然后希望看到它在UTC,我敢打赌。不幸的是,以易于阅读的格式记录日期需要隐藏的游乐场协议。 –