我试图将UTC日期转换为当前时区,但我注意到一个时间问题。
我在大溪地/法属波利尼西亚(UTC-10),当前时间(使用格式:YYYY/MM/DD HH:MM:SS)是:2018/08/05 06:45:00
我的错在哪里?
雨燕3
import Foundation
extension Date {
var toLocalTimezone : Date {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd' 'HH:mm:ss"
formatter.timeZone = TimeZone(secondsFromGMT:0) // UTC
let defaultTimeZoneStr = formatter.string(from: self)
let dateFormatter = DateFormatter()
formatter.timeZone = TimeZone.current // Local
dateFormatter.dateFormat = "yyyy/MM/dd' 'HH:mm:ss"
return dateFormatter.date(from:defaultTimeZoneStr)!
}
}
debugPrint("\(TimeZone.current)")
debugPrint("Locale time : \(Date().toLocalTimezone.toFormat(format: DateFormats.yyyyMMddHHmmss))" )
结果:
而不是:
“区域设置时间:2018-08-05 06:45:42”
其实很简单。dateformatter
的timezone
属性告诉dateformatter
从date
生成的字符串应该在哪个时区,或者您试图转换为date
的字符串是哪个时区。
对你来说意味着什么?
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd' 'HH:mm:ss"
formatter.timeZone = TimeZone(secondsFromGMT:0) // UTC
let defaultTimeZoneStr = formatter.string(from: self)
这意味着您正在将日期
格式化为字符串
并且得到的字符串
将位于时区(SecondsFromgmt:0)
let dateFormatter = DateFormatter()
formatter.timeZone = TimeZone.current // Local
dateFormatter.dateFormat = "yyyy/MM/dd' 'HH:mm:ss"
return dateFormatter.date(from:defaultTimeZoneStr)!
我的理解是,您正在尝试创建一个函数,该函数将输出一个日期
格式为字符串
的自定义格式和用户时区。下面是我相信您正在寻找的片段:
extension Date {
func format(_ format: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = format
formatter.timeZone = TimeZone.current // Local
return formatter.string(from: self)
}
}
Hi im使用moment js转换此字符串我尝试了: 当我存储在mongodb中时,问题就变成了 反正能解释为什么请?
问题内容: 从服务器上,我得到了这种格式的datetime变量:它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时间。 如何使用JavaScript或jQuery完成此操作? 问题答案: 在将字符串转换为javascript中的日期之前,将’UTC’附加到字符串中:
我想把这个2021年1月20日20:10:14转换成yyyy-MM-dd'T'HH:MM:ss格式。Android系统中的SSS'Z'。目前我正在使用函数,但当我转换为本地格式时,我没有得到原始时间
问题内容: 我从来没有不得不将时间与UTC转换。最近有人要求我的应用注意时区,并且我一直在圈子里奔波。我发现很多有关将本地时间转换为UTC的信息,这很基本(也许我也做错了),但是我找不到任何有关将UTC时间轻松转换为最终用户时区的信息。 简而言之,android应用程序向我发送了(appengine应用程序)数据,该数据中包含时间戳。要将时间戳存储为UTC时间,我正在使用: 那似乎行得通。当我的应
问题内容: 我使用以下方式将UTC日期存储到数据库中: 然后我要将保存的UTC日期转换为客户的本地时间。 我怎样才能做到这一点? 谢谢 问题答案: 并且都使用服务器除非被覆盖本地时区; 您可以覆盖与一起使用的时区。
问题内容: 我从我的API获取此日期字符串: 但是此日期为UTC格式,我想将其转换为当地时间,该怎么办? 我尝试了这个: 但是它返回了这个错误: 问题答案: 您的日期格式模式错误。改成: 有关更多信息,请参见SimpleDateFormat的javadoc。