首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-08-17 09:37:25

如何在预定义的时区中返回NSDate?

你不能这么做。

NSDate的实例不携带任何有关时区或日历的信息。它只是简单地指出了宇宙时间中的一个点。

您可以在任何日历中解释这个NSDate对象。Swift的字符串插值(示例代码的最后一行)使用使用UTC的NSDateFormatter (输出中的"+0000“)。

如果要将NSDate值作为当前用户日历中的字符串,则必须为此显式设置日期格式化程序。

票数 18
EN

Stack Overflow用户

发布于 2015-08-17 09:23:02

日期格式必须分配给日期格式化程序的dateFormat属性。

代码语言:javascript
运行
复制
let date = NSDate.date()
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let str = dateFormatter.stringFromDate(date)
println(str)

这将使用设备上的默认时区打印日期。只有当您想要根据不同的时区进行输出时,才会添加例如

斯威夫特3*

代码语言:javascript
运行
复制
dateFormatter.timeZone = NSTimeZone(name: "UTC")

斯威夫特4*

代码语言:javascript
运行
复制
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")

还请参考链接http://www.brianjcoleman.com/tutorial-nsdate-in-swift/

票数 43
EN

Stack Overflow用户

发布于 2018-07-10 00:08:03

Swift 4.0

代码语言:javascript
运行
复制
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32046550

复制
相关文章

相似问题

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