如何获取当前日期(不包括小时和分钟)?
如何获取当前日期(不包含小时和分钟)?
问题出现的原因是,希望能够获取当前日期,但不需要包含小时和分钟。
解决方法如下:
1. 首先,在pubspec.yaml
文件中添加依赖项:
dependencies:
intl: ^0.17.0
2. 然后,在代码中导入intl
包:
import 'package:intl/intl.dart';
3. 接下来,使用DateTime
类获取当前日期:
final now = new DateTime.now();
4. 使用DateFormat
类对日期进行格式化,以去除小时和分钟:
String formatter = DateFormat('yMd').format(now);
以上代码将返回当前日期的字符串形式,例如:"28/03/2020"。
如果你想知道如何记住日期格式(DateFormat('yMd')
),你可以在Flutter文档中找到答案。
DateFormat
类允许用户从一组标准日期时间格式中选择,也可以在特定区域设置下指定自定义模式。
以下是从文档中直接取出的一些格式示例:
new DateFormat.yMd() -> 7/10/1996
new DateFormat('yMd') -> 7/10/1996
new DateFormat.yMMMMd('en_US') -> July 10, 1996
new DateFormat.jm() -> 5:08 PM
new DateFormat.yMd().add_jm() -> 7/10/1996 5:08 PM
new DateFormat.Hm() -> 17:08 // 强制使用24小时制
希望这能帮助你以任何格式获取日期。
这个示例会与intl
包一起正常工作。
如果你只想获取日期而不包括时间戳,你可以使用intl包来帮助实现。
main() {
var now = new DateTime.now();
var formatter = new DateFormat('yyyy-MM-dd');
String formattedDate = formatter.format(now);
print(formattedDate); // 2016-01-25
}
这需要引入intl包:
dependencies:
intl: ^0.16.1
最后导入:
import 'package:intl/intl.dart';
这样就可以得到当前的日期(不包括小时和分钟)了。
问题出现的原因是需要获取当前日期(不包含小时和分钟),但DateTime.now()方法返回的日期包含了小时和分钟。
解决方法有以下几种:
1. 创建一个新的日期变量,只保留需要的部分:
DateTime now = new DateTime.now();
DateTime date = new DateTime(now.year, now.month, now.day);
在Dart中,"new"关键字是可选的。
2. 使用replaceAll()方法删除日期字符串中的"00:00:00.000":
date.toString().replaceAll("00:00:00.000", "")
3. 使用intl包来格式化日期/时间,可以自定义日期/时间格式:
import 'package:intl/intl.dart';
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd').format(now);
4. 如果不想创建一个新的变量,还可以使用copyWith()方法来获取不包含小时、分钟、秒、毫秒和微秒的日期:
DateTime.now().copyWith(hour: 0, minute: 0, second: 0, millisecond: 0, microsecond: 0)
希望以上方法对您有帮助!