📅  最后修改于: 2023-12-03 15:39:13.617000             🧑  作者: Mango
Dart中的TimeOfDay
类可以用来表示一天中的时间。它包含了hour
和minute
字段,表示小时数和分钟数,范围均为0~23和0~59。
有时候我们需要把TimeOfDay
对象转换成字符串,这个过程可以通过调用TimeOfDay
类中的format()
方法来完成,本文将介绍如何使用Dart将TimeOfDay
转换为字符串。
要将TimeOfDay
转换为字符串,只需要调用TimeOfDay
类的format()
方法即可。这个方法接收一个字符串作为参数,字符串描述了输出字符串的格式。时间格式的定义均为Unicode CLDR格式化指南。例如,以下是一个将TimeOfDay
转换为12小时制字符串的示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final now = TimeOfDay.now();
final formattedTime = now.format(context);
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text(' TimeOfDay 转换为字符串例子'),
),
body: Center(
child: Text('当前时间为:$formattedTime'),
),
),
);
}
}
上述代码通过调用format()
方法将当前时间转换为12小时制字符串。其格式化的代码为"h:mm a",解释如下:
程序运行结果如下:
TimeOfDay
的format()
方法允许我们自定义输出字符串的格式。以下是一些常用的格式:
| 格式 | 描述 | | --- | --- | | HH:mm | 以24小时制显示时间(例如"19:30") | | h:mm a | 以12小时制显示时间(例如"7:30 pm") | | HH:mm:ss | 以24小时制显示时间,并包括秒(例如"19:30:00") | | h:mm:ss a | 以12小时制显示时间,并包括秒(例如"7:30:00 pm") |
我们可以通过传递不同的格式字符串来得到自己需要的时间格式。例如,以下示例将当前时间转换为"HH:mm:ss.SSS"格式的字符串:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final now = TimeOfDay.now();
final formattedTime = now.format(context, "HH:mm:ss.SSS");
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('自定义格式的 TimeOfDay 转换为字符串例子'),
),
body: Center(
child: Text('当前时间为:$formattedTime'),
),
),
);
}
}
输出结果为:
本文介绍了如何使用format()
方法将TimeOfDay
对象转换为字符串。我们可以通过传递不同的格式字符串来得到我们需要的时间格式。通过调用TimeOfDay
类的now()
方法获取当前时间,然后调用format()
方法将其转换为字符串,并将结果显示在应用程序界面上。