📅  最后修改于: 2023-12-03 15:09:38.041000             🧑  作者: Mango
在Dart中,将日期和时间转换为字符串可以非常简单。Dart中有两个主要的类:DateTime
和DateFormat
,使用它们可以快速实现日期和时间的格式化和解析。本文将介绍如何将DateTime
转换为字符串,并提供一些常用的日期时间格式化选项。
将DateTime
对象转换为字符串的最简单方法是调用其toString()
方法。例如:
var now = DateTime.now(); // 获取当前时间
print(now.toString()); // 输出:2021-10-08 14:08:36.840342
toString()
方法会将DateTime
对象转换为YYYY-MM-DD hh:mm:ss.ssssss
的字符串格式。如果你需要自定义日期时间格式,则可以使用DateFormat
类。
DateFormat
类提供了各种日期和时间格式选项,可以帮助你根据需要定制日期和时间的格式。以下是几个常用的选项及其说明:
| 选项 | 描述 |
| --- | --- |
| y
| 年(仅年份)|
| M
| 月 |
| MMM
| 缩写月份 |
| MMMM
| 完整月份 |
| d
| 日 |
| E
| 缩写星期几 |
| EEEE
| 完整星期几 |
| a
| 上午/下午 |
| H
| 24小时制小时数 |
| h
| 12小时制小时数 |
| m
| 分钟数 |
| s
| 秒数 |
| S
| 毫秒数 |
以下是一些示例,展示如何使用选项格式化日期时间:
var now = DateTime.now(); // 获取当前时间
// 使用默认格式
print(DateFormat().format(now)); // 输出:2021-10-08 14:24:50
// 自定义格式
print(DateFormat('yyyy-MM-dd').format(now)); // 输出:2021-10-08
print(DateFormat('yyyy-MM-dd HH:mm:ss').format(now)); // 输出:2021-10-08 14:24:50
print(DateFormat('yyyy/MM/dd hh:mm:ss a').format(now)); // 输出:2021/10/08 02:24:50 下午
在上面的示例中,DateFormat()
创建一个DateFormay
对象,并使用默认值yyyy-MM-dd hh:mm:ss
格式化日期时间。使用其他选项可以自定义日期时间格式。
如果你有一个字符串,需要将其解析为DateTime
对象,则可以使用DateTime.parse()
方法。例如:
var dateString = '2021-10-08 14:24:50';
var dateTime = DateTime.parse(dateString);
print(dateTime.toString()); // 输出:2021-10-08 14:24:50.000000
DateTime.parse()
方法将字符串解析为DateTime
对象。请确保字符串遵循ISO 8601格式(例如YYYY-MM-DDTHH:mm:ss.sssZ
),否则将导致解析错误。
使用Dart将日期和时间格式化为字符串非常容易。使用DateTime
和DateFormat
类,可以快速轻松地进行日期和时间的格式化和解析,从而实现自己所需的格式。