Ios 格式化日期字符串Swift 3中的问题
我需要将以下日期字符串转换为Swift 3中的日期Ios 格式化日期字符串Swift 3中的问题,ios,swift,nsdateformatter,nstimezone,Ios,Swift,Nsdateformatter,Nstimezone,我需要将以下日期字符串转换为Swift 3中的日期 Fri Dec 09 16:18:43 AMST 2016 这是我一直在使用的代码,但它在这个特定的日期字符串转换中获得了现金。(此日期是使用newdate().toString()方法登录到Android上的。) 数据库中有两种类型的字符串。我尝试了各种类型的时区格式(z/zz/zzz/zzzz/zzzzz),但总是myDate返回零 任何帮助都将不胜感激。 提前感谢。时区的苹果文档(缩写:): 一般来说,除了“GMT”这样的独特实例外,不
Fri Dec 09 16:18:43 AMST 2016
这是我一直在使用的代码,但它在这个特定的日期字符串转换中获得了现金。(此日期是使用newdate().toString()
方法登录到Android上的。)
数据库中有两种类型的字符串。我尝试了各种类型的时区格式(z/zz/zzz/zzzz/zzzzz),但总是myDate
返回零
任何帮助都将不胜感激。
提前感谢。时区的苹果文档(缩写:): 一般来说,除了“GMT”这样的独特实例外,不鼓励您使用缩写。时区缩写没有标准化,因此给定的缩写可能有多种含义 AMST代表“亚马逊夏季时间”(UTC-3)还是“亚美尼亚夏季时间”(UTC+5)?见: 这可能就是为什么它无法检测到正确的时区 我可以提出的解决办法:
- 将日期字符串中的AMST替换为UTC-3或UTC+5
- 从日期字符串中删除AMST并使用
dateFormatter.timeZone=timeZone(secondsFromGMT:-3或5*3600)
注意以下代码,其中正确理解了AMST:
let df = DateFormatter()
df.locale = Locale.init(identifier: "pt_BR") // assuming AMST is Amazon Summer Time (UTC -3)
df.dateFormat = "HH:mm:ss z"
print(df.date(from: "16:18:43 AMST")) // Optional(2000-01-01 19:18:43 +0000)
但是,一旦你输入了英文的日期或月份名称(如Fri或Dec),它将生成
nil
(因为它们不是葡萄牙语)。字符串包含AMST
使用此名称:尝试使用不带时区的名称,如果此名称不适用,请尝试然后将日期格式重新安排为“eemmddhh:mm:ss zzz yyyy”和dateFormatter.timeZone=NSTimeZone.local或尝试设置local.current
let df = DateFormatter()
df.locale = Locale.init(identifier: "pt_BR") // assuming AMST is Amazon Summer Time (UTC -3)
df.dateFormat = "HH:mm:ss z"
print(df.date(from: "16:18:43 AMST")) // Optional(2000-01-01 19:18:43 +0000)