【问题标题】:Dart parse date with +0000Dart 使用 +0000 解析日期
【发布时间】:2020-04-30 08:49:19
【问题描述】:

我正在使用 Twitter api 在 Flutte 应用程序中获取推文。 该 api 返回一个格式化的日期,如下所示:

Wed Jun 12 00:08:35 +0000 2019

  DateTime formatTwitterDate() {
    final format = DateFormat('EEE MMM dd hh:mm:ss +0000 yyyy'); //todo failed to resolve +0000
    return format.parse(this);
  }

这是我工作的唯一格式化程序。如何支持 +0000?

【问题讨论】:

标签: date flutter dart dateformatter


【解决方案1】:

使用这个 javascript 实现并将其转换为 DartExtension

https://stackoverflow.com/a/2611438/5115254

extension StringToDateTime on String {
  DateTime formatTwitterDate() {
    final newDateString = '${replaceAll('+0000 ', '')} UTC';
    final format = DateFormat('EEE MMM dd hh:mm:ss yyyy Z');
    return format.parse(newDateString);
  }
}

【讨论】:

  • 这会根据您在评论中提到的位置添加时间吗?例如 +0010 那么它会增加 10 分钟的时间吗?
【解决方案2】:

移植this对dart的回答

  var s = "Fri Apr 09 12:53:54 +0000 2010";
  print(s);

  final newString =
      s.replaceAllMapped(RegExp(r'\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)'), (m) {
    return "${m[1]} ${m[2]} ${m[4]} ${m[3]} UTC";
  });
  print(newString);

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多