Dart 解析完整日期时间,包括上午/下午



我在这里2020/07/07 09:47:54我的 API 中有我的日期,我试图在其中解析为2020/07/07 09:47am.我已经使用intl包尝试了以下方法,但是出现错误

DateFormat format = DateFormat('yyyy/MM/dd hh:mm').add_jm();
DateTime newDate = format.parse(date)

未处理的异常:格式异常:尝试从位置 20 处读取 2020/07/07 09:47:54

有人知道这里似乎有什么问题吗?

我认为您需要添加以下代码行:

String date = DateFormat.yMEd().add_jms().format(DateTime.now());
String dateWithT = date.substring(0, 8) + 'T' + date.substring(8);
DateTime dateTime = DateTime.parse(dateWithT);

解决方案

我找到了一种方法,我需要将字符串日期解析为 DateTime 格式,然后根据需要再次重新格式化。

DateTime dateTime = DateFormat('yyyy/MM/dd h:m').parse(date);
final DateFormat formatter = DateFormat('yyyy-MM-dd h:m a');
final String formatted = formatter.format(dateTime);

您可以尝试像这样格式化两次:

String date = '2020/07/07 09:47:54';
DateFormat myDateFormat = DateFormat('yyyy/MM/dd hh:mm');
DateTime newDate = myDateFormat.parse(date);
var myString = myDateFormat.format(newDate) + DateFormat('a').format(newDate);

最新更新