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
Flutter深色模式Flutter在Android上的启动流程
姜康
姜康
一个软件工程师
公告
type
status
date
slug
summary
tags
category
icon
password
🎉博客网站重新制作了🎉
👏欢迎更新体验👏