Flutter:正确显示本地日期时间
Flutter: Display local datetimes correctly
假设我有一个 DateTime
对象,我想以正确的本地格式显示它。
如果我在 德语 设备上执行以下操作,我会得到:
dateTime.toLocal().toString()
// Prints
2022-05-28 23:29:19.518
但是,对于 德语 设备,我希望或希望有更多这样的东西:28.5.2022 23:29:19
我知道我可以格式化 DateTime
但这只是针对某个 locale
.
的硬编码
奇怪的是,我在 Whosebug 上找到的所有解决方案要么是对格式进行硬编码,要么只适用于 Dart,而不适用于 Flutter。
在 Flutter 中显示本地 datetime
的正确方法是什么?
您可以使用此包 intl 并像
这样本地化日期
var format = DateFormat.yMd('ar');
var dateString = format.format(DateTime.now());
使用这里已经提到的 intl 包,到目前为止这对我来说效果很好:
DateFormat dateTimeFormat = DateFormat.jm(Localizations.localeOf(context).toString());
DateTime dt = DateTime.fromMicrosecondsSinceEpoch(entity.syncDateTime);
dateTimeFormat.format(dt);
要获得尚不支持的输出,例如,将 ymd
格式的 DateTime
字符串与 jm
格式的 DateTime
字符串连接。
假设我有一个 DateTime
对象,我想以正确的本地格式显示它。
如果我在 德语 设备上执行以下操作,我会得到:
dateTime.toLocal().toString()
// Prints
2022-05-28 23:29:19.518
但是,对于 德语 设备,我希望或希望有更多这样的东西:28.5.2022 23:29:19
我知道我可以格式化 DateTime
但这只是针对某个 locale
.
奇怪的是,我在 Whosebug 上找到的所有解决方案要么是对格式进行硬编码,要么只适用于 Dart,而不适用于 Flutter。
在 Flutter 中显示本地 datetime
的正确方法是什么?
您可以使用此包 intl 并像
这样本地化日期var format = DateFormat.yMd('ar');
var dateString = format.format(DateTime.now());
使用这里已经提到的 intl 包,到目前为止这对我来说效果很好:
DateFormat dateTimeFormat = DateFormat.jm(Localizations.localeOf(context).toString());
DateTime dt = DateTime.fromMicrosecondsSinceEpoch(entity.syncDateTime);
dateTimeFormat.format(dt);
要获得尚不支持的输出,例如,将 ymd
格式的 DateTime
字符串与 jm
格式的 DateTime
字符串连接。