用镖解析日期

Fed*_*dy2 10 datetime parsing date dart

我需要DateTime在Dart的一个对象中解析这种日期"星期一,2014年8月11日下午12:53 PDT" .

DateTime有一个静态方法parse接受ISO 8601格式的一个子集,而不是我的情况.

DateFormat类允许您定义的日期模式解析.我创造了"EEE,dd MMM yyyy hh:mm a zzz"的模式.

使用它我得到了FormatException: Trying to read a from Mon, 11 Aug 2014 12:53 pm PDT at position 23.

看起来解析器不喜欢PM标记的情况(我打开了一个问题).

我试图解决整个字符串的问题.使用字符串全部大写我再次得到一个FormatException,因为工作日和大写的月份名称.

任何其他解决方案或解决方法?

Gün*_*uer 14

您可以用大写字母替换小写的"am"/"pm"字符.

import 'package:intl/intl.dart';

void main() {
  var date = 'Mon, 11 Aug 2014 12:53 pm PDT';
  DateFormat format = new DateFormat("EEE, dd MMM yyyy hh:mm a zzz");
  date = date.replaceFirst(' pm', ' PM').replaceFirst(' am', ' AM');
  print(date);
  print(format.parse(date));
}
Run Code Online (Sandbox Code Playgroud)