当前位置: 首页 > 知识库问答 >
问题:

使用省道解析日期

甄鹏云
2023-03-14

我需要在Dart中的DateTime对象中解析这种日期“Mon,2014年8月11日12:53 pm PDT”。

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

DateFormat类允许您定义要分析的日期模式。我创建了一个模式“EEE,dd-MMM-yyy-hh:mm-a-zzz”。

使用它,我得到一个格式例外:试图从周一,11八月2014 12:53下午PDT在位置23读取一个。

看起来解析器不喜欢PM标记的情况(我已经提出了一个问题)。

我试着解决整个管柱上套管的问题。使用字符串all大写,我再次得到一个FormatException,因为星期和月份的名称都是大写的。

还有其他解决方案或解决方法吗?

共有2个答案

赵智勇
2023-03-14

试试这个包裹,杰菲。它处理所有解析,不需要将字符串大写

var jiffy = Jiffy("Mon, 11 Aug 2014 12:53 pm PDT", "EEE, dd MMM yyyy hh:mm a zzz");

您还可以轻松地格式化和操作日期时间。实例

jiffy.format("dd MM yyyy");
// Or use DateFormat's default date time formats
jiffy.yMMMM;
// Also get relative time
jiffy.fromNow();
慕容成和
2023-03-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));
}
 类似资料:
  • 嗨,我正在尝试以YYYY-MM-DD格式解析日期。我正在尝试这个: 但是我得到了错误,我想这是一个解析错误, 0001-01-01 00:00:00 0000 UTC解析时间“2016-01-1”为“2020-12-30”:无法将“-01-01”解析为“0” 我该如何解析它,或者通过其他示例给出一些提示?蒂亚。

  • 问题内容: 我的日期格式为dd-mmm-yy或d- mmm-y,其中月份是字母的缩写(例如,09年11月4日或05年12月12日等)。喜欢解析它以产生一个java.util.Date对象。 可以通过利用java.text.DateFormat类来实现吗?还是有另一种简单的方法? 问题答案: 您可能需要使用SimpleDateFormat来解析自定义格式。此文章解释格式的细节。

  • 本文向大家介绍Java内省实例解析,包括了Java内省实例解析的使用技巧和注意事项,需要的朋友参考一下 图像中轮廓的个数,里面vector的size代表了轮廓上点的个数。了解JavaBean 内省对应的英文单词为IntroSpector,它主要用于对JavaBean进行操作,JavaBean是一种特殊的Java类,其中的某些方法符合某种命名规则,如果一个Java类中的一些方法符合某种命名规则,则可

  • 2018-01-23T12 在让每小时的分钟默认为零的同时,如何解析它? 2018-01-23T12:00 在java.base/java.time.format.DateTimeFormatter.ParsereSolved0(DateTimeFormatter.java:1988) 在java.base/java.time.format.DateTimeFormatter.parse(Date

  • 问题内容: 我有两个时间戳,它们以两种不同的格式描述同一时刻。 和。 我用Joda-Time用两个不同的日期格式解析时间戳。最后,我想有两个DateTime对象,它们在同一时刻相同。 DateFormatter提供了几种控制时区和语言环境的方法,但我无法使其正常工作。 这是我想工作的代码: 问题答案: 如果您的默认时间zome是Europe / Berlin,则2010-10-03 18:58:0

  • 如果我传递了一个日期和时间字符串,一切都按预期进行: 如何将这样的日期解析为LocalDateTime(使用默认时间)?