日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dart系列之:时间你慢点走,我要在dart中抓住你

發布時間:2024/2/28 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dart系列之:时间你慢点走,我要在dart中抓住你 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 簡介
  • DateTime
  • Duration
  • 總結

簡介

時間和日期是我們經常會在程序中使用到的對象。但是對時間和日期的處理因為有不同時區的原因,所以一直以來都不是很好用。就像在java中,為時間和日期修改和新增了多次API,那么作為新生的語言dart而言,會有什么不一樣的地方嗎?

dart中關于日期和時間的兩個非常重要的類是DateTime和Duration.

其中DateTime表示的是時間,而Duration表示的是時間差。

DateTime

先看一下DateTime的使用。

DateTime表示的是一個時間點。因為世界時鐘有UTC和本地時間兩種。所以,在使用DataTime的時候,也可以使用這兩種時鐘。

最簡單的就是獲取當前的時間:

var now = DateTime.now();

如果要創建指定日期的時間,則可以將年月日傳入DateTime的構造函數:

var now = DateTime(2021, 11, 20);

注意,上面創建的日期是本地日期。

如果要創建UTC time,則可以使用DateTime.utc方法:

var utc = DateTime.utc(2021, 11, 20);

還有一種表示時間的方法是unix time, Unix time指的是從1970年1月1日開始所經過的秒數.

DateTime有兩種表示Unix time時間的方法,分別是:

DateTime.fromMicrosecondsSinceEpoch(10000);DateTime.fromMillisecondsSinceEpoch(10000);

他們的區別在于,一個表示的是微秒,一個表示的是毫秒。

DateTime還可以將字符串轉換成為DateTime對象:

var time= DateTime.parse('2002-02-27T14:00:00-0500');

事實上,DateTime.parse可以接受多種字符類型,如下所示:

`"2012-02-27"` `"2012-02-27 13:27:00"``"2012-02-27 13:27:00.123456789z"` `"2012-02-27 13:27:00,123456789z"` `"20120227 13:27:00"` `"20120227T132700"` `"20120227"` `"+20120227"``"2012-02-27T14Z"` `"2012-02-27T14+00:00"`

Duration

Duration表示的是兩個時間之間的差值。

來看下Duration的構造函數:

const Duration({int days = 0,int hours = 0,int minutes = 0,int seconds = 0,int milliseconds = 0,int microseconds = 0}): this._microseconds(microsecondsPerDay * days +microsecondsPerHour * hours +microsecondsPerMinute * minutes +microsecondsPerSecond * seconds +microsecondsPerMillisecond * milliseconds +microseconds);

可以看到Duration可以表示從天到microseconds的間隔,已經足夠用了. 應該怎么使用呢?

var time = DateTime.now();// 添加一年 var nextYear = time.add(const Duration(days: 365)); assert(nextYear.year == 2022);

同樣的,我們可以對還可以減去Duration:

var time = DateTime.now();//減少一年 var lastYear = time.subtract(const Duration(days: 365)); assert(lastYear.year == 2020);

當然還可以計算兩個日期的差值:

var duration = nextYear.difference(time); assert(duration.inDays == 365);

總結

以上就是dart中對時間和日期的支持。

本文已收錄于 http://www.flydean.com/17-dart-date-time/

最通俗的解讀,最深刻的干貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程序那些事」,懂技術,更懂你!

總結

以上是生活随笔為你收集整理的dart系列之:时间你慢点走,我要在dart中抓住你的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。