gpt4 book ai didi

swift - 从字符串到 Nsdate Swift

转载 作者:行者123 更新时间:2023-11-30 14:01:07 24 4
gpt4 key购买 nike

我以这种形式从 MySql 数据库获取日期:

dd/MM/yyyy HH:mm:ss

例如:2015年9月19日14:39:18

我想在 Swift 中的 NSDate 对象中转换这个字符串,因此我这样做了:

var d = "19/09/2015 14:39:18"
var form : NSDateFormatter = NSDateFormatter()
form.dateFormat = "dd/MM/yyyy HH:mm:ss"
print(form.dateFromString(d)!)

但是我在最后打印时得到了这个:

2015-09-19 12:39:18 +0000

出了什么问题?

最佳答案

您需要告诉您的NSDateFormatter传入的日期字符串采用 GMT 时区格式:

var d = "19/09/2015 14:39:18"
var form : NSDateFormatter = NSDateFormatter()
form.timeZone = NSTimeZone(name: "GMT")
form.dateFormat = "dd/MM/yyyy HH:mm:ss"
print(form.dateFromString(d)!)

打印:

"2015-09-19 14:39:18 +0000"

如果您省略手动设置 timeZone属性(property),NSDateFormatter将继承当前系统时区,并将其解析为本地格式时间。然后当您打印新的 NSDate 时对象,它以 GMT 显示,这会导致偏移。

编辑:一旦您拥有 NSDate对象,然后您可以使用相同的格式化程序返回具有相同格式的字符串表示形式:

var d = "19/09/2015 14:39:18"
var form : NSDateFormatter = NSDateFormatter()
form.timeZone = NSTimeZone(name: "GMT")
form.dateFormat = "dd/MM/yyyy HH:mm:ss"
form.stringFromDate(form.dateFromString(d)!) // "19/09/2015 14:39:18"

关于swift - 从字符串到 Nsdate Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982132/

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