概述:
- 表示一个时间点
- 通过构造函数或解析格式化的字符串创建
DateTime
对象,并且符合ISO 8601
标准的子集,小时是24小时制,范围在0-23之间 DateTime
对象创建之后,将是固定不变的, 不可被修改DateTime
对象默认使用的是本地时区,除非显示地指定UTC
时区
一,方法详解
- 命名构造,获取当前时间
now()
指定时间
//创建时间对象,并指定时间
DateTime victoryDay = new DateTime(1945,9,9);//时间跨度
//计算时间跨度,例如计算2天56时14分的跨度
Duration timeRemaining = new Duration(days:2, hours:56, minutes:14);
print(timeRemaining);//104:14:00.000000
}- DateTime转时间戳
millisecondsSinceEpoch
- 时间戳转DateTime
fromMillisecondsSinceEpoch
- 字符串转DateTime
parse(string)
- 时间比较---在之前
isBefore(date)
- 时间比较---在之后
isAfter(date)
- 时间比较---相等
isAtSameMomentAs(date)
- 大于返回1;等于返回0;小于返回-1
compareTo(date)
- 时间增加
add(Duration)
- 时间减少
subtract(Duration)
- 时间差 两个时间相差 小时数
difference(date)
- 本地时区简码
timeZoneName
- 返回UTC与本地时差 小时数
timeZoneOffset
- 返回 年、月、日、时、分、秒、毫秒、微妙
year、month、day、hour、minute、second、millisecond、microsecond
- 返回星期几
weekday
二,字符串与日期相互转换
- String-->DateTime:
DateTime.parse(String);
- DateTime -->formatString:
formatDate(DateTime ,[yyyy,'-',mm,'-',dd]);
三,代码示例
var today = DateTime.now();
print('当前时间是:$today');
var date1 = today.millisecondsSinceEpoch;
print('当前时间戳:$date1');
var date2 = DateTime.fromMillisecondsSinceEpoch(date1);
print('时间戳转日期:$date2');
//拼接成date
var dentistAppointment = new DateTime(2019, 6, 20, 17, 30,20);
print(dentistAppointment);
// 字符串转date
DateTime date3 = DateTime.parse("2019-06-20 15:32:41");
print(date3);
// 时间比较
print(today.isBefore(date3));// 在之前
print(today.isAfter(date3)); // 在之后
print(date3.isAtSameMomentAs(date3));// 相同 print(date3.compareTo(today));// 大于返回1;等于返回0;小于返回-1。
// print(DateTime.now().toString());
// print(DateTime.now().toIso8601String()); //时间增加
var fiftyDaysFromNow = today.add(new Duration(days: 5));
print('today加5天:$fiftyDaysFromNow');
//时间减少
DateTime fiftyDaysAgo = today.subtract(new Duration(days: 5));
print('today减5天:$fiftyDaysAgo');
//时间差 两个时间相差 小时数
print('比较两个时间 差 小时数:${fiftyDaysFromNow.difference(fiftyDaysAgo)}'); print('本地时区简码:${today.timeZoneName}'); print('返回UTC与本地时差 小时数:${today.timeZoneOffset}'); print('获取年月日:${today.year}');//month、day、hour、minute、second、millisecond、microsecond print('星期:${today.weekday}');// 返回星期几