在客户端开发中,时间(包含日期和时间)是一个很常用的功能,比如显示时间、时间和时间戳转换、时间之间的比较等,我使用的是date_format: ^1.0.8插件。在这里记录一下使用方法。
1、时间戳转换为String类型的字段
static StringreadTimestamp(int timestamp) {
if (timestamp ==null) {
return "";
}
var date =new DateTime.fromMillisecondsSinceEpoch(
timestamp.toString().length ==10 ? timestamp *1000 : timestamp);
var time = formatDate(date, [mm, '-', dd, ' ', " ", HH, ':', nn]);
return time;
}
首先是把13位的时间戳转换成DateTime,然后根据formatDate方法根据需要的格式来进行拼接。
点进这个formatDate方法看一下,就能完全明白这个String类型的时间是怎么拼接出来的
在传入的formats集合来区分是获取年、月、日、时、分、秒、周几等什么样的内容,对DateTime来做不同的处理,再通过StringBuffer来把这些字段拼接起来,就得到了我们需要的字段类型。
2、获取各个时间层次的值
可以分别通过DateTime.now().year,DateTime.now().month,DateTime.now().day来分别获取现在的年份,月份和日期,同样也可以获取到时(hour)、分(minute)、秒(second)、毫秒(millisecond)、周几(weekday),这个使用比较简单。
3、两个时间之间的判断或者加减
一:计算两个日期之间的间隔天数,很简单,就一句话
time2.difference(time1).inDays
同样可以得到,以小时计算的间隔,以分钟计算的间隔等等
二:获取时间加、减之后的日期:
time.add(new Duration(days: -1));(减一天)或者time.subtract(Duration(days:1));
time.add(new Duration(days: 1));(加一天)
可以看出add的时候参数是一个Duration,看一下代码
也就是对于一个日期来说,对Duration的这些入参或者说成是构造参数都可以执行加减的操作。
对于flutter中的时间使用就到这里了,后续如果有更多的关于时间上的操作,再来更新文章。
网友评论