「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」
简介
时间和日期是我们经常会在程序中使用到的对象。但是对时间和日期的处理因为有不同时区的原因,所以一直以来都不是很好用。就像在java中,为时间和日期修改和新增了多次API,那么作为新生的语言dart而言,会有什么不一样的地方吗?
dart中关于日期和时间的两个非常重要的类是DateTime和Duration.
其中DateTime表示的是时间,而Duration表示的是时间差。
DateTime
先看一下DateTime的使用。
DateTime表示的是一个时间点。因为世界时钟有UTC和本地时间两种。所以,在使用DataTime的时候,也可以使用这两种时钟。
最简单的就是获取当前的时间:
1 | ini复制代码var now = DateTime.now(); |
如果要创建指定日期的时间,则可以将年月日传入DateTime的构造函数:
1 | ini复制代码var now = DateTime(2021, 11, 20); |
注意,上面创建的日期是本地日期。
如果要创建UTC time,则可以使用DateTime.utc方法:
1 | ini复制代码var utc = DateTime.utc(2021, 11, 20); |
还有一种表示时间的方法是unix time, Unix time指的是从1970年1月1日开始所经过的秒数.
DateTime有两种表示Unix time时间的方法,分别是:
1 | ini复制代码 DateTime.fromMicrosecondsSinceEpoch(10000); |
他们的区别在于,一个表示的是微秒,一个表示的是毫秒。
DateTime还可以将字符串转换成为DateTime对象:
1 | ini复制代码var time= DateTime.parse('2002-02-27T14:00:00-0500'); |
事实上,DateTime.parse可以接受多种字符类型,如下所示:
1 | arduino复制代码 `"2012-02-27"` |
Duration
Duration表示的是两个时间之间的差值。
来看下Duration的构造函数:
1 | ini复制代码 const Duration( |
可以看到Duration可以表示从天到microseconds的间隔,已经足够用了. 应该怎么使用呢?
1 | ini复制代码var time = DateTime.now(); |
同样的,我们可以对还可以减去Duration:
1 | ini复制代码var time = DateTime.now(); |
当然还可以计算两个日期的差值:
1 | ini复制代码var duration = nextYear.difference(time); |
总结
以上就是dart中对时间和日期的支持。
本文已收录于 www.flydean.com/17-dart-dat…
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
本文转载自: 掘金