我正在尝试格式化 DateTime
结果并在用户当前的设备区域设置中显示给用户。
目前我可以显示整个 DateTime
,如下所示:
2018-10-08 16:08:37.464112
或者通过像这样指定确切的格式:
DateFormat("dd.MM.yyyy").format(DateTime.now())
结果如下:
08.10.2018
我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;在例如美国(和许多其他国家)他们习惯于不同的日期格式,例如
10/08/2018
我的问题是:如何以用户当前语言环境的格式只返回日期(而不是时间)?
回答:
需要检索当前语言环境并将其传递给格式函数。我正在使用自定义本地化类,但使用开箱即用的解决方案,它看起来像这样:
DateFormat.yMMMd(Localizations.localeOf(context)).format(result);
最佳答案
我知道这已经得到解答,但如果有人想使用实际的设备语言环境而不是硬编码的语言环境:
DateFormat.yMMMd(Localizations.localeOf(context).languageCode).format(result);
重要的是,您需要在此处传递 String
而不是 Locale
对象。
如果您想要自定义日期格式,则需要根据您想要支持的所有语言环境创建自己的开关/案例。
https://stackoverflow.com/questions/52706297/
相关文章:
android - Flutter中如何解析json数据并显示在Listview中?
android - 即使应用程序关闭,也在后台运行 Dart 和 Flutter 中的定期任务
dart - 如何使用现有的应用程序 keystore 获取签名的 apk?
flutter - Flutter 中的约束布局等价物是什么?
android - Flutter - 多个手势,无需抬起手指
firebase - Flutter ListView 跳转到顶部
android - 在 Dismissible Widget 上禁用关闭方向
java - 在 Flutter 应用程序中使用 Java 或其他语言