如何将 UTC 日期时间字符串转换为 Dart 中的本地日期时间?

How to convert an UTC datetime string into a local datetime in Dart?

我从 API 2022-03-15T02:33:53.488427 中得到这个值,它是一个代表 UTC 时间戳的字符串,我当前的时区时间是 UTC-5,我正在尝试这个代码:

createdAt = DateTime.tryParse('2022-03-15T02:33:53.488427').toLocal();

但是 createdAt 包含与原始字符串相同的日期时间,我缺少什么?

字符串 2022-03-15T02:33:53.488427 不包含时区。所以要告诉 Dart 您希望这是 UTC 时间,然后将“Z”附加到字符串。然后它知道现在是祖鲁时间。否则它会假设你在解析它时是在当地时间。 尝试

createdAt = DateTime.tryParse('2022-03-15T02:33:53.488427Z').toLocal();

使用 print(createdDate?.timeZoneName) 确认 UTC 或您的本地