如何(我的提示和步骤):
当您为String -> Date 寻找日期格式而苦苦挣扎时,请问您:我的格式到底在做什么?它在解析/解释什么?让我们看看Date -> String...
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssXXX"
print(formatter.string(from: Date()))
输出:2021-10-14T13:06:38+02:00:它与我们拥有的字符串“相同”吗?不,有些是一样的,但不是全部...
让我们继续另一个技巧:
让我们把我们的格式和字符串放在另一个上面:
2021-10-14T17:53:03.753588+05:30
yyyy-MM-dd'T'HH:mm:ssXXX
然后,让我们添加“空格”,以使每个模式匹配其对应的输入:
2021-10-14 T 17:53:03.753588 +05:30
yyyy-MM-dd 'T' HH:mm:ss XXX
然后,让我们检查doc(它在我的网络浏览器中添加了书签)以了解模式的解释,并检查它们是否对应(如果需要),并在需要时找到丢失的那个。
好的,所以我们根本不解释.753588,这就是它失败的原因......
这是小数秒,所以如果我们将格式更改为:"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",它应该可以工作。请注意,如果您愿意,可以将XXX 替换为Z...
现在,请记住模式是区分大小写的,因此,如果您因此而有奇怪的小时、分钟或 nil,请检查您是否误用了分钟与月份、12 小时格式与 24 小时格式...
如果您有小时差异(或通常 30 分钟差异),则问题可能是时区问题。
如果您有一天的差异,它也可能是一个时区问题(将其解释为午夜前后的小时差异,因此会有一天的变化)。
如果您有年份差异,请检查您是否没有滥用 yyyy 与 YYYY。
等等。但这应该涵盖您的大多数情况(基本问题)。