1

我在某些路由中工作的服务器返回一个带有一个额外数字的日期,这在我们的应用程序中引起了奇怪的行为。然后我将奇怪的行为隔离到以下代码:

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

为什么额外的数字会带来93 小时的差异?我不明白为什么。

我创建了一个 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")!)
4

0 回答 0