如何仅从DateTime.now()中提取时间;

Noa*_*oam 3 dart flutter

我有这个变量来提取时间 DateTime.now();

DateTime date = DateTime.now();
String time = "${date.hour}:${date.minute}:${date.second}";
Run Code Online (Sandbox Code Playgroud)

问题是,如果时间例如是01:09:32,我得到的时间是1:9:32。

如何获得常规格式的时间?

我可以使用if-else做到这一点,但是我敢肯定有更好的方法

Tin*_*son 6

您可以尝试使用DateFormat,只需将pubspec.yaml 包含intl依赖项即可

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedTime = DateFormat.Hms().format(now);
print(formattedTime);
Run Code Online (Sandbox Code Playgroud)

根据您的要求,您可以查看DateFormat

从DateFormat类获取的一些示例可以为您提供更多帮助。

String formattedTime = DateFormat.jm().format(now);           //5:08 PM
String formattedTime = DateFormat.Hm().format(now);           //17:08  force 24 hour time
Run Code Online (Sandbox Code Playgroud)