首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSDate快速设置时区

NSDate快速设置时区
EN

Stack Overflow用户
提问于 2015-08-17 09:09:19
回答 5查看 59.8K关注 0票数 13

如何从字符串返回预定义时区中的NSDate

代码语言:javascript
运行
复制
let responseString = "2015-8-17 GMT+05:30"
var dFormatter = NSDateFormatter()
dFormatter.dateFormat = "yyyy-M-dd ZZZZ"
var serverTime = dFormatter.dateFromString(responseString)
println("NSDate : \(serverTime!)")

以上代码返回的时间为

代码语言:javascript
运行
复制
2015-08-16 18:30:00 +0000
EN

Stack Overflow用户

发布于 2020-04-28 19:55:44

数字1指的是1,而不管语言如何。但在英语中,它被拼成一个,在西班牙语中拼写为una,在阿拉伯语中拼写为wahid,等等。

同样地,1970年的123982373秒将在不同的时区或日历格式中反映不同的情况,但仍然超过1970年的123982373秒。

3秒和7秒的区别是4秒。这不需要日历。您不需要一个日历/时区来了解这两个Epoch times 1585420200和1584729000之间的时间差。

日期只是从1970年1月1日(午夜世界协调时/格林尼治标准时间)开始的timeInterval。日期也恰好具有字符串表示形式。

重复Nikolia的回答,Swift的默认字符串插值(2015-08-16 18:30:00 +0000)使用了一个使用UTC的DateFormatter (输出中的"+0000“)。

使用时区的日历给我们提供了一个上下文表示,它比试图计算两个巨大数字之间的差异更容易理解。

指的是单个日期(想象1970年以来的单个timeInterval ),每个日历都会有不同的字符串解释。最重要的是,日历本身将根据时区而变化。

我强烈建议您使用这个时代换流场,看看选择不同的时区将如何导致同一时刻/日期/时间timeInterval的字符串表示发生变化

我还建议您看看这个答案。主要是本部分:

时区只是对时间戳字符串的修改,它不受日期格式化程序的考虑。 要考虑时区,必须设置格式化程序的timeZone dateFormatter.timeZone = TimeZone(secondsFromGMT: -14400)

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32046550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档