我在某些路由中工作的服务器返回一个带有一个额外数字的日期,这在我们的应用程序中引起了奇怪的行为。然后我将奇怪的行为隔离到以下代码:
import 'package:intl/intl.dart';
void main() {
final format = DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ");
print(format.parse('2020-08-05T14:23:55.974582+00:00'));
print(format.parse('2020-08-05T14:23:55.9745829+00:00'));
}
产生输出:
2020-08-05 14:40:09.582
2020-08-05 17:06:20.829
为什么额外的数字会带来9
3 小时的差异?我不明白为什么。
我创建了一个 repl,因此您可以尝试:https ://repl.it/join/jfhehoqt-leonardosilva25
当我尝试快速解析相同的字符串时,它给出的结果与 dart 不同,两个字符串都给了我相同的日期 https://repl.it/join/ncjffdth-leonardosilva25
来自 repl 的原始 swift 代码供参考:
import Foundation
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZ"
print(dateFormatter.date(from: "2020-08-05T14:23:55.974582+00:00")!)
print(dateFormatter.date(from: "2020-08-05T14:23:55.9745829+00:00")!)