簡體   English   中英

Dart for Flutter中的日期差異

[英]Date difference in Dart for Flutter

使用Dart在Flutter中播放-我正在嘗試確定兩個日期之間的秒數。

但是由於某種原因, date1.difference(date2).inSeconds給出的結果對我來說沒有意義。 也許已經晚了,我太累了,無法在這里錯過一些東西:

這是我的代碼:(即日期的打印聲明及其以秒為單位的差異):

print(myDate);  // DateTime type
print(queryDate); // DateTime type
print(myDate.difference(queryDate).inSeconds);

打印結果顯示:

2019-02-01 00:18:00.000Z     // myDate
2019-02-01 01:17:18.859431   // queryDate
41                           // supposedly difference in seconds...

但這不應該超過41秒嗎?

原因可能是x.000Z與.859431的格式差異嗎? 如果是,為什么?

為什么difference方法忽略了分鍾和小時?

我找到了解決方案:

原來, queryDate是另一種格式(不確定.859431是什么意思-也許有人可以解釋...?)

至少,當我執行以下操作時,它會起作用:

DateTime queryDate2 = DateTime.utc(
                        queryDate.year,
                        queryDate.month,
                        queryDate.day,
                        queryDate.hour,
                        queryDate.minute,
                        queryDate.second);

然后我的打印語句是:

print(myDate);      // DateTime type in UTC
print(queryDate);   // DateTime type in .859431 format (??)
print(queryDate2);  // DateTime type in UTC
print(myDate.difference(queryDate2).inHours);
print(myDate.difference(queryDate2).inMinutes);
print(myDate.difference(queryDate2).inSeconds);

打印結果顯示:

2019-02-01 00:18:00.000Z    // myDate
2019-02-01 02:01:21.081575  // queryDate
2019-02-01 02:01:21.000Z    // queryDate2
-1                          // difference in hours   (now correct !)
-103                        // difference in minutes (now correct !)
-6201                       // difference in seconds (now correct !)

是的,更喜歡它:)(..現在的小時,分​​鍾和秒是正確的)。

也許還有另一種將日期更改為UTC的方法? 任何想法表示贊賞。

試試這個包, Jiffy 處理所有問題。 它遵循momentjs庫,並尊重一個月和leap年中的天數,以嘗試至少獲得最佳結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM