这是【Flutter 问题系列第 38 篇】,如果觉得有用的话,欢迎关注专栏。
文章目录
一:什么是时间戳
- 一:什么是时间戳
- 二:DateTime 转 时间戳
- 三:时间戳转 DateTime
- 四:DateTime 转 字符串
- 五:字符串 转 DateTime
如果你不清楚什么是时间戳,可以 点此链接 了解。
基础了解
首先看下 DateTime.now() 的打印结果,如下所示
2021-07-25 13:39:11.925361
其中,小数点后面的代表毫秒精度,一般取前 19 位,即 2021-07-25 13:39:11,然后再根据需求转换时间格式。
二:DateTime 转 时间戳DateTime dateTime = DateTime.now(); // 2021-07-25 14:01:14.127700
int timeUnix = dateTime.millisecondsSinceEpoch; // 1627192874127
timeUnix 代表当前时间所对应毫秒精度的时间戳(13位),如果你想要秒级精度(10位)除以 1000 即可,此值与时区无关。
三:时间戳转 DateTimeint timeUnix = 1627192874127;
DateTime now = DateTime.fromMillisecondsSinceEpoch(timeUnix); // 2021-07-25 14:01:14.127
可以看到,时间戳在转换为 DateTime 时,毫秒精度变为了小数点后三位,而不是六位了。
四:DateTime 转 字符串DateTime dateTime = DateTime.now(); // 2021-07-25 14:08:27.375525
String timeStr = dateTime.toString(); // 2021-07-25 14:08:27.375525
虽然值看着一样,但类型却不一样,前者为 DateTime 类型,后者为 String 类型。
五:字符串 转 DateTimeString time = "2021-07-25 14:12:59.055365"; // 2021-07-25 14:12:59.055365
DateTime dateTime = DateTime.parse(time); // 2021-07-25 14:12:59.055365
同理,虽然值看着一样,但类型却不一样,前者为 String 类型,后者为 DateTime 类型。
需要注意,字符串一定要按照 DateTime 显示的格式定义,否则在解析时会报错。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 Google 的 Flutter 越来越火,截止 2021年7月25日 GitHub 标星已达 125K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。 无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。