当前位置: 首页 > 知识库问答 >
问题:

飞镖/颤动默认日期格式

贺兴平
2023-03-14

我正在尝试格式化日期时间结果,并在用户的当前设备区域设置中向用户显示它。

当前,我可以显示整个日期时间,如下所示:

2018-10-08 16:08:37.464112

或者通过像这样指定确切的格式:

DateFormat("dd.MM.yyyy").format(DateTime.now())

这导致以下内容:

08.10.2018

我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;例如,在美国(和许多其他国家),他们习惯于不同的日期格式,例如。

10/08/2018

我的问题是:如何以当前语言环境的格式仅向用户返回日期(而不是时间)?

答:< br >我们需要检索当前的语言环境,并将其传递给format函数。我使用的是自定义本地化类,但开箱即用的解决方案看起来会是这样的:

DateFormat.yMMMd(Localizations.localeOf(context)).format(result);

共有2个答案

闽涵蓄
2023-03-14

您可以将区域设置传递给日期格式,例如

format = DateFormat.yMMMd("en_US");

另见

    < Li > https://docs . flutter . io/flutter/intl/date format-class . html < Li > https://flutter . io/tutorials/国际化
容寒
2023-03-14

我知道这已经得到了回答,但是如果有人想要使用实际的设备区域设置而不是硬编码的区域设置:

DateFormat.yMMMd(Localizations.localeOf(context).languageCode).format(result);

重要的是,这里需要传递<code>字符串

如果您想要一个定制的日期格式,那么您需要基于您想要支持的所有地区创建您自己的开关/case。

 类似资料:
  • 我试图改变从API返回的日期字符串的格式。下面的日期格式输入字符串在java中工作正常,但在Dart中则不行。

  • 我如何重新格式化、转换或从Dart/Flutter中的字符串中提取日期和时间?字符串来自我的MySQL数据库中的默认时间戳; 但是我不确定用什么作为regex。

  • 在flutter示例页面中,有一个名为“将数据发送到新屏幕”的项目。我对第65行的构造函数有一个重新保护的问题。

  • 第一次使用Oracle SQL(我习惯使用MySQL)。我发现关于默认日期格式的信息有冲突。在多次尝试使用INSERT IN my\u table语句的to\u DATE之后,我终于找到了我正在使用的数据库expects DD-MON-YY(即2018年1月25日)。然而,在stackoverflow和其他地方的不同页面上,我看到一些人说默认值是YYYYMMDD或DD/MM/YYYY或YYYY-M

  • 我最近安装了android studio 4.1.2和flutter 1.22.6,尽管我在android studio中安装了flutter和dart插件。 现在为了明确错误,请执行以下操作(步骤对我有效):

  • 我有下面的列表,我试着按日期时间重新排序。 我想以最远到期日期最先显示的方式重新排序列表: 我尝试过的(更新)- 在排序函数上,我收到了这个错误(通过上述修复解决):