Rob*_* J. 8 datetime string-formatting dart flutter
我正在尝试格式化DateTime结果并将其显示给用户当前设备语言环境中的用户。
目前我可以显示整个DateTime如下:
2018-10-08 16:08:37.464112
或者通过指定这样的确切格式:
DateFormat("dd.MM.yyyy").format(DateTime.now())
Run Code Online (Sandbox Code Playgroud)
结果如下:
08.10.2018
我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;在例如美国(和许多其他国家/地区),他们习惯于使用不同的日期格式,例如
10/08/2018
我的问题是:如何以当前语言环境的格式仅将日期(而不是时间)返回给用户?
答:
需要检索当前语言环境并将其传递给格式函数。我正在使用自定义本地化类,但使用开箱即用的解决方案,它看起来像这样:
DateFormat.yMMMd(Localizations.localeOf(context)).format(result);
Run Code Online (Sandbox Code Playgroud)
Mig*_*ran 13
我知道这已经得到了回答,但是如果有人想使用实际的设备区域设置而不是硬编码的区域设置:
DateFormat.yMMMd(Localizations.localeOf(context).languageCode).format(result);
Run Code Online (Sandbox Code Playgroud)
重要的是,您需要在这里传递一个String而不是一个Locale对象。
如果您想要自定义日期格式,那么您需要根据您想要支持的所有语言环境创建您自己的开关/案例。
You can pass a locale to DateFormat like
format = DateFormat.yMMMd("en_US");
Run Code Online (Sandbox Code Playgroud)
See also
| 归档时间: |
|
| 查看次数: |
10899 次 |
| 最近记录: |