您当前的位置: 首页 >  flutter

Allen Su

暂无认证

  • 1浏览

    0关注

    431博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Flutter 问题系列第 38 篇】DateTime 和时间戳的相互转换,DateTime 和字符串的相互转换

Allen Su 发布时间:2021-07-25 14:22:07 ,浏览量:1

这是【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 即可,此值与时区无关。

三:时间戳转 DateTime
int 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 类型。

五:字符串 转 DateTime
String 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 博客中,希望自己学习的同时,也可以帮助更多的人。
关注
打赏
1656491068
查看更多评论
立即登录/注册

微信扫码登录

0.0417s