📅  最后修改于: 2023-12-03 15:00:21.322000             🧑  作者: Mango
在 Dart 中,可以使用 DateTime 类来表示日期和时间。这个类提供了许多方法来操作日期和时间,包括格式化日期和时间。
要格式化日期,可以使用 DateTime 类中的 toString()
方法。这个方法可以接受一个格式化字符串,用来指定输出的日期时间格式。下面是一些常用的格式化字符串:
yyyy-MM-dd
:输出年、月、日,使用横杠分隔。yyyy/MM/dd
:输出年、月、日,使用斜杠分隔。yyyy-MM-ddTHH:mm:ss
:输出年、月、日、小时、分钟、秒,使用横杠和冒号分隔。yyyy-MM-dd HH:mm:ss
:输出年、月、日、小时、分钟、秒,使用横杠和冒号分隔,时间和日期之间使用空格分隔。EEE, MMM d, ''yy
:输出星期、月份、日、年。在代码中,可以这样使用这些格式化字符串:
import 'package:intl/intl.dart';
void main() {
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd').format(now);
print(formattedDate); // 输出:2022-01-01
formattedDate = DateFormat('yyyy/MM/dd').format(now);
print(formattedDate); // 输出:2022/01/01
formattedDate = DateFormat('yyyy-MM-ddTHH:mm:ss').format(now);
print(formattedDate); // 输出:2022-01-01T12:00:00
formattedDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(now);
print(formattedDate); // 输出:2022-01-01 12:00:00
formattedDate = DateFormat('EEE, MMM d, ''yy').format(now);
print(formattedDate); // 输出:Sat, Jan 1, '22
}
注意,在使用日期和时间格式化时,需要先导入 intl
包。可以使用以下命令添加该包:
pub add intl
在 Dart 中,可以使用 DateTime.fromMillisecondsSinceEpoch()
方法将时间戳转换为日期时间。这个方法接受一个整数参数,表示从 1970 年 1 月 1 日至今的毫秒数。下面是一个示例代码:
void main() {
int timestamp = 1641014400000; // 2022-01-01 00:00:00 的时间戳
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp);
print(dateTime); // 输出:2022-01-01 00:00:00.000
}
本篇文章介绍了在 Dart 中如何格式化日期和时间,以及将时间戳转换为日期时间。在实际开发中,时间格式化是一个很常见的需求,掌握这些知识可以让我们更加高效地开发应用程序。