首页 > 解决方案 > GMT 时间字符串到 Dart 中的 DateTime

问题描述

我想将字符串转换为DateTime飞镖。我试过,

String timeVal = "Thu, 25 Mar 2021 19:29:28 GMT";
DateTime.parse(timeVal);

但得到一个例外,

FormatException(FormatException:无效的日期格式 Thu, 25 Mar 2021 19:29:28 GMT)

我怎样才能将这样的字符串值转换为DateTime飞镖

标签: flutterdart

解决方案


您可以使用intl包:

import 'package:intl/intl.dart';

void main() {
  final string = 'Thu, 25 Mar 2021 19:29:28 GMT';
  final formatter = DateFormat('EEE, d MMM yyyy HH:mm:ss');
  final dateTime = formatter.parse(string);
  print(dateTime); // prints : 2021-03-25 19:29:28.000
}

有关详细信息,请参阅此答案DartFormat类文档。

请注意,DateTime示例中解析的时区不正确(即dateTime.timeZoneName会返回您当地的时区)。


推荐阅读