如何从字符串中获取 NSDate 而不将其转换为 UTC

smq93

我有以下问题。假设我从服务器收到一些包含以下格式的日期时间的字符串:

yyyy-MM-dd'T'HH:mm:ssxxxx

这是服务器日期时间,我想在应用程序中按原样显示它。所以如果我收到日期时间:

2017-04-07T10:29:23+ 02:00

这意味着在服务器上是 10:29:23 (08:29:23 UTC)

我想在应用程序中将其显示为:

04.07.2017 10:29:23

但是每当我尝试将字符串转换为 NSDate 时,我都会将日期转换为 UTC,这是不希望的,因为我丢失了有关服务器时区的信息。我现在使用以下代码:

let formatter = NSDateFormatter()
formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxxx"

let date = formatter.dateFromString(dateString)

我怎样才能在 Swift (2.3) 中实现这一点?

提前致谢。

smq93

好的,最后我设法使用您的提示解决了问题。

以下代码符合我的期望:

let formatter = NSDateFormatter()
formatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxxx"

let timeZonePattern = "([+-]([01][0-9]):[0-5][0-9])$" // e.g. "+02:00"
let regex = try! NSRegularExpression(pattern: pattern, options: [])
let dateStringWithoutTimeZone = regex.stringByReplacingMatchesInString(dateString, options: [], range: NSMakeRange(0, dateString.characters.count), withTemplate: "Z")

let date = formatter.dateFromString(dateStringWithoutTimeZone)

谢谢你们!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将UTC字符串转换为NSDate

来自分类Dev

如何在Swift中将字符串UTC日期转换为NSDate

来自分类Dev

将UTC NSDate转换为本地NSDate不起作用

来自分类Dev

将此字符串转换为NSDate

来自分类Dev

如何将字符串日期转换为NSDate?

来自分类Dev

如何将字符串转换为NSdate?

来自分类Dev

如何将字符串日期转换为NSDate?

来自分类Dev

Swift如何将字符串转换为NSDate

来自分类Dev

如何将字符串转换为NSdate?

来自分类Dev

如何获取时间并将其转换为Python中的UTC

来自分类Dev

将UTC日期格式转换为本地nsdate

来自分类Dev

NSDate:将UTC值转换为军事时区值

来自分类Dev

获取具有UTC时间的[NSDate日期]

来自分类Dev

获取带有UTC时间的[NSDate日期]

来自分类Dev

从字符串转换为UTC格式

来自分类Dev

UTC 中的字符串转换为 EST Instant

来自分类Dev

NSDate从字符串错误转换

来自分类Dev

NSDate从字符串错误转换

来自分类Dev

在iOS中将日期从字符串转换为NSDate

来自分类Dev

swift-将字符串转换为NSDate

来自分类Dev

将日期字符串表示为 UTC 日期并将其转换为本地时区

来自分类Dev

iOS:将NSDate对象转换为字符串以获取当前时间

来自分类Dev

如何将日期字符串从UTC转换为HIVE中的特定时区?

来自分类Dev

将字符串转换为 DateTime 格式而不将其转换为您的本地时间

来自分类Dev

如何比较“/0”字符而不将其转换为“0”

来自分类Dev

我可以在漂亮的汤标签中修改文本而不将其转换为字符串吗?

来自分类Dev

如何使用NSDateFormatter将字符串日期转换为NSDate

来自分类Dev

如何在iOS中将datetime字符串转换为NSDate?

来自分类Dev

从NSDate对象获取UTC时间和本地时间

Related 相关文章

热门标签

归档