parsing - 用 Dart 解析日期

标签 parsing date datetime dart

我需要在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/

相关文章:

c++ - 使用 boost::spirit::qi 解析 double 列表

php - 从 Laravel 中的一系列日期获取行

javascript - 具有已知偏移量且没有夏令时的已知位置的时间

c++ - Exprtk 解析器无法在 VS 2015 上运行?

java - 读取两个文件(文本)并比较共同值并输出字符串?

php - 哪些库将使用 PHP 解析 DTD

Django调度,如何检查日期是否在两个日期之间

javascript - 如何从 moment.unix() 将 moment 解析为特定时区

时区之间的 Javascript 存储日期

postgresql - spark 将字符串转换为 TimestampType