从"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"转换为'MM/dd/yyyy hh:mm a'
date = '2021-01-26T03:17:00.000000Z';
DateTime parseDate =
new DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(date);
var inputDate = DateTime.parse(parseDate.toString());
var outputFormat = DateFormat('MM/dd/yyyy hh:mm a');
var outputDate = outputFormat.format(inputDate);
print(outputDate)
// With en_US locale by default
var newDateTimeObj = new DateFormat().add_yMd().add_Hms().parse("7/10/1996 10:07:23")
// with a defined format
var newDateTimeObj2 = new DateFormat("dd/MM/yyyy HH:mm:ss").parse("10/02/2000 15:13:09")
9条答案
按热度按时间rn0zuynd1#
DateTime.parse("string date here")
只接受某些格式化的字符串。请检查以下接受的字符串示例。"2012-02-27 13:27:00"
"2012-02-27 13:27:00.123456789z"
"2012-02-27 13:27:00,123456789z"
"20120227 13:27:00"
"20120227T132700"
"20120227"
"+20120227"
"2012-02-27T14Z"
"2012-02-27T14+00:00"
"-123450101 00:00:00 Z"
:在-12345年。"2002-02-27T14:00:00-0500"
:与"2002-02-27T19:00:00Z"
相同=〉日期时间字符串
=〉将日期时间转换为字符串
参考链接:
intl
用于Flutter包中的DateFormat
(https://pub.dev/packages/intl)wz8daaqr2#
intl DateFormat
不能处理你的输入字符串,因为它没有任何分隔符。整个字符串都被当作年份使用。然而DateTime.parse
确实能处理这个问题(几乎)。它碰巧正好期望你的格式(同样,几乎)。parse
可接受的样式之一是20120227T132700
,它的区别仅在于T
日期/时间分隔符。试试这个:
piwo6bdm3#
从
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
转换为'MM/dd/yyyy hh:mm a'
输出日期:2021年1月26日03:17 AM
8yoxcaq74#
可以使用DateFormat将DateTime从字符串解析为对象
检查文档here。
ybzsozfc5#
将字符串转换为日期格式的最简单方法是
yizd12fk6#
从docs开始,您需要将单个
M
转换为month in year
:kyks70gy7#
关于如何在flutter中将字符串转换为日期和将日期转换为字符串的基本信息。
https://quickstartflutterdart.blogspot.com/2018/10/how-to-convert-string-to-date-and-date.html
可能会对其他人有所帮助。
wmomyfyw8#
我做了类似的事情(使用intl包)
上面代码中的
LLLL
是表示“独立月份”的日期格式 backbone ,其他日期格式化程序为here7z5jn7bk9#