在我的coredatabase中,我有一个带有NSDate属性的“新闻”实体。我的应用程序是全球。将NSDate转换为SWIFT中特定时区的字符串
新闻出版2015年9月4日22时15分54秒+0000法国小时(北京时间)
要保存日期,我把它转换,在UTC格式。
let mydateFormatter = NSDateFormatter()
mydateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00"
mydateFormatter.timeZone = NSTimeZone(abbreviation: "UTC")
var dateToSaved : NSDate! = mydateFormatter.dateFromString(date)
的消息被记录日期:2015年9月4日20点15分54秒+0000(UTC)
在应用之后,我需要转换这个NSDate的保存在字符串:
let mydateFormatter = NSDateFormatter()
mydateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00"
var dateInString:String = mydateFormatter.stringFromDate(date)
一切完美,如果我启动应用程序在同一个时区,当我公布的消息,即GMT + 2。
如果我更改设备的时区,例如UTC-4,然后将我的NSDate的字符串,日期是不一样的。我得到了:2015-09-04 16:15:54 +0000
如何获取与我的数据库中的任何时区相同的UTC日期?
我对时区不太舒服,但我认为我的问题来自NSDate中的“+0000”。在我所有的日子里,总是有+0000,我认为它应该是正确的时区。但我不知道该怎么办。
嗨.... @LeoDabus 我想字符串转换为日期。这里是我的代码: '让A日期:字符串= “2016年11月10日” 让dateFormatter = DateFormatter() dateFormatter.calendar =日历(标识符:.iso8601) dateFormatter.locale =语言环境(标识:“en_US_POSIX “) dateFormatter.dateFormat =”dd MMMM,YYYY“ //dateFormatter.timeZone = TimeZone(identifier:”UTC“) let eventDate = dateFormatter.date(from:aDate) dateFormatter.dateFormat =”MMM dd,YYYY “ aLblDate.text = dateFormatter.string(来自:EVENTDATE) 打印(” 日期:\(aLblDate.text)“)//它打印 ”2015年12月28日“' – VRAwesome
在评论我不能格式化代码。对不起。如果有任何问题,请告诉我。 – VRAwesome
你需要使用yyyy而不是YYYY –