dart 如何从www.example.com()中只提取时间DateTime.now;

qqrboqgw  于 2023-04-03  发布在  其他
关注(0)|答案(3)|浏览(130)

我用这个变量从DateTime.now();中提取时间

DateTime date = DateTime.now();
String time = "${date.hour}:${date.minute}:${date.second}";

问题是,如果时间是01:09:32,那么我得到的时间是1:9:32。
如何使用常规格式获取时间?
我可以用if-else来做这件事,但我确信还有更好的方法

wvmv3b1j

wvmv3b1j1#

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

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedTime = DateFormat.Hms().format(now);
print(formattedTime);

根据您的需求,您可以查看DateFormat
从DateFormat-class中获取的一些示例可以帮助您更多。

String formattedTime = DateFormat.jm().format(now);           //5:08 PM
String formattedTime = DateFormat.Hm().format(now);           //17:08  force 24 hour time
flvtvl50

flvtvl502#

如果你有,在你的UtilityMixin中创建这个函数,否则你也可以在你的类中创建它

String getTimeFromDateAndTime(String date) {
    DateTime dateTime;
    try {
      dateTime = DateTime.parse(date).toLocal();
      return DateFormat.jm().format(dateTime).toString(); //5:08 PM
// String formattedTime = DateFormat.Hms().format(now);
// String formattedTime = DateFormat.Hm().format(now);   // //17:08  force 24 hour time
    }
    catch (e) {
    return date;
    }
  }

//在你的类中

getTimeFromDateAndTime("Pass date in string here")
  • 从try部分取消注解格式。
  • 使用try和catch是必须的,因为有时候当格式不匹配时会崩溃
yzuktlbb

yzuktlbb3#

您可以提取它,也可以使用TimeofDay对象,方法如下:

TimeOfDay.fromDateTime(DateTime.now());

相关问题