gpt4 book ai didi

ios - NSCalendar.dateFromComponents 的令人困惑的结果

转载 作者:行者123 更新时间:2023-11-30 14:15:53 26 4
gpt4 key购买 nike

我尝试使用以下 Swift 代码获取当前日期,而不需要小时和分钟:

let calendar = NSCalendar.currentCalendar()

let components = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: NSDate())

println(components)

let date = calendar.dateFromComponents(components)

println(date)

我用 println 得到的结果对我来说有点困惑:

<NSDateComponents: 0x7fb5ad867700>
Calendar Year: 2015
Month: 7
Leap month: no
Day: 2

2015-07-01 22:00:00 +0000

components是 2015-07-02 比特结果 date是 2015-07-01 22:00:00

我的错误在哪里?

<小时/>

A提到NSDateFormatter结果很好:

var dateFormatter = NSDateFormatter()

dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle
dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle

println(dateFormatter.stringFromDate(date!))

结果:

July 2, 2015 at 12:00 AM

最佳答案

propel 是 println(date) 的工作方式。它使用了 NSDatedescription 方法,并返回引用 GMT (UTC) 的数据。因此,您将看到基于您与 GMT 的时区偏移量的差异。

在输出“2015-07-01 22:00:00 +0000”中,请注意结尾的“+0000”,它是时区偏移量,是 GMT,而不是您的时区。

结果是使用日期格式化程序并指定时区,对于设备的时区,您可以使用系统时区:[NSTimeZone systemTimeZone]NSTimeZone.systemTimeZone() 对于 Swift。

关于ios - NSCalendar.dateFromComponents 的令人困惑的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31185482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com