type
status
date
slug
summary
tags
category
icon
password
Flutter 中在时间处理方面还是比较简单的,我们主要用到的有两个类:
- DateTime
表示一个指定的时间点,包括年月日时分秒
- TimeOfDay
表示一天中的一个时间点,可以区分上午,下午,12小时制,24小时制等
获取当前时间
final now = DateTime.now();
这里就得到了一个当前时间的DateTime对象,然后就可以拿到你想要的信息:
final year = now.year; final month = now.month; final day = now.day;
还可以获取当前时星期几:
final week = now.weekday;
转时间戳
final now = DateTime.now(); String timestamp = now.millisecondsSinceEpoch.toString();
时间运算
- 前2天
final now = DateTime.now(); final before = now.subtract(Duration(days: 2));
- 后2天
final now = DateTime.now(); final after = now.add(Duration(days: 2));
- 两个时间点相隔的时间数
final now = DateTime.now(); final after = now.add(Duration(days: 2)); final diff = after.difference(now).inHours; // 相隔的小时数,也可以是分钟数,秒数
上午还是下午
可以使用TimeOfDay来处理:
final timeOfDay = TimeOfDay.now(); final amOrPm = timeOfDay.period;
其中timeOfDay.period实际上是一个枚举对象:
enum DayPeriod { /// Ante meridiem (before noon). am, /// Post meridiem (after noon). pm, }
这样可以判断是上午还是下午了。
12/24小时制
- 24小时
final hour24 = timeOfDay.hour;
- 12小时
final hour12 = timeOfDay.hourOfPeriod;
还可以格式化输出当前的分钟小时数:
final timeStr = timeOfDay.format(context); // 11:49 PM
- 作者:姜康
- 链接:https://jiangkang.tech/article/c608ed4f-eab8-41ba-ac95-d628c3aab6d3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章