我需要在Dart中的 DateTime
对象中解析这种日期“PDT 2014年8月11日星期一12:53 pm”。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标记的情况(我已经打开了一个issue)。
我试图解决整个字符串问题。使用字符串全部大写,由于星期几和月份名称大写,因此我再次得到FormatException。
还有其他解决方案或解决方法吗?
最佳答案
您可以将小写的“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));
}
关于parsing - 用 Dart 解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252675/