【问题标题】:change the datetime format in flutter, to leave it only with the date在颤动中更改日期时间格式,仅保留日期
【发布时间】:2026-01-27 13:15:01
【问题描述】:

我想知道如何在颤动中更改日期时间格式,只保留日期。 我也想知道是否有另一个只包含日期的小部件。

谢谢

【问题讨论】:

标签: dart flutter


【解决方案1】:

您可以使用 intl 包中的 DateFormat。 有了它,您可以自定义任何您需要的格式。

添加到 pubspec.yaml

dependencies:
  intl: ^0.15.7

关于 Dart 代码:

import 'package:intl/intl.dart';

final dateFormatter = DateFormat('yyyy-MM-dd');
final dateString = dateFormatter.format(DateTime.now());

然后您可以将字符串放入任何小部件中。示例:

Text(dateString)

关于日期格式:https://www.cl.cam.ac.uk/~mgk25/iso-time.html

【讨论】:

    【解决方案2】:

    创建一个新的 DateTime 并从中获取日期:

    var date = DateTime.now();
    var result = "${date.year}/${date.month}/${date.day}";
    print(result);  // prints 2019/3/6
    

    【讨论】:

    • 哦,好的,谢谢。另一个疑问,您可以将语言更改为颤振日期时间,因为默认情况下它是英文...
    • 正确,为此您需要 Long Phan 提到的 intl
    【解决方案3】:

    您可以从 DateTime 对象中获取日期月份和年份并将其转换为字符串。

    DateTime today = DateTime.now();
    print(today); // prints 2019-12-15 00:00:00.000
    DatetTime date = DateTime(today.year, today.month, today.day).toString().substring(0,10); 
    print(date); // prints 2019-12-15
    

    希望对你有帮助

    【讨论】:

    • 你认为正确的解决方案是什么?顺便说一下,你能告诉我一个这不起作用的案例吗?
    • 如果您以后不使用它会重置小时/分钟/秒DateTime(today.year, today.month, today.day)