gpt4 book ai didi

ios - Playground 上的 NSFormatter 与项目中的工作方式不同

转载 作者:行者123 更新时间:2023-11-28 06:59:35 24 4
gpt4 key购买 nike

我在日期格式方面遇到了真正的困难。我想完全忽略时区,因为所有时间都被认为是本地时间。我在 Playground 上试过了,效果很好。

var dateFormatter: NSDateFormatter = NSDateFormatter()
var dateString = "2015-09-02 22:05:00"

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
//dateFormatter.timeZone = NSTimeZone.localTimeZone()

let openDate = dateFormatter.dateFromString(dateString)

上面的代码创建了一个日期值“Sep 2, 2015, 10:05 PM”,这正是我想要的。但是,当我将相同的代码复制并粘贴到一个简单的项目中时,返回的值总是“2015-09-03 04:05:00 +0000”,这正是我不想要的。我希望无论我现在身在何处,日期始终与保存时区相同。

有什么方法可以让它完全忽略时区?我想在本地保存一个日期并在本地检索它,但它一直在改变我的时间。在日期格式化程序中设置时区没有区别。为什么它在 Playground 上有效但在项目中无效?谢谢。

最佳答案

您可以忽略时区,将您的日期视为 UTC 时间,如下所示:

let dateFormatter: NSDateFormatter = NSDateFormatter()
let dateString = "2015-09-02 22:05:00"

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)!
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
if let dateFromString = dateFormatter.dateFromString(dateString){
println(dateFromString) // "2015-09-02 22:05:00 +0000"
let stringFromDate = dateFormatter.stringFromDate(dateFromString)
println(stringFromDate) // "2015-09-02 22:05:00"
}

关于ios - Playground 上的 NSFormatter 与项目中的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364998/

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