第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JS 和 .NET 夏令時(shí)行為之間的差異

JS 和 .NET 夏令時(shí)行為之間的差異

C#
交互式愛(ài)情 2023-09-16 17:18:39
我試圖讓 C# 和 JS 在 JSDate和 .NETDateTime對(duì)象上添加分鐘數(shù)時(shí)生成相同的結(jié)果。我的系統(tǒng)使用希臘文化設(shè)置,但很可能您會(huì)在您的計(jì)算機(jī)上得到類似的結(jié)果(如果您使用這些值)。我有這個(gè)使用 moment.js 的 JS 代碼:var dt1 = new Date(2020, 0, 19, 0, 0, 0);var m1 = moment(dt1);[m1.toString(), m1.add(100980, 'minutes').toString()]>  ["Sun Jan 19 2020 00:00:00 GMT+0200", "Sun Mar 29 2020 04:00:00 GMT+0300"]..LinqPad 中的 C# 代碼:var ci = CultureInfo.CreateSpecificCulture("el-GR"); //CultureInfo.InvariantCulture; //CultureInfo.CurrentCulture;var dt = new DateTime(2020, 1, 19, 0, 0, 0, 0, ci.Calendar, DateTimeKind.Local);dt.ToString("G", ci).Dump();var dt2 = dt.AddMinutes(100980);dt2.ToString("G", ci).Dump();> 19/1/2020 12:00:00 πμ> 29/3/2020 3:00:00 πμ...并且在使用不變文化進(jìn)行打印時(shí):var ci = CultureInfo.CreateSpecificCulture("el-GR"); //CultureInfo.InvariantCulture; //CultureInfo.CurrentCulture;var dt = new DateTime(2020, 1, 19, 0, 0, 0, 0, ci.Calendar, DateTimeKind.Local);dt.ToString("G", CultureInfo.InvariantCulture).Dump();var dt2 = dt.AddMinutes(100980);dt2.ToString("G", CultureInfo.InvariantCulture).Dump();> 01/19/2020 00:00:00> 03/29/2020 03:00:00有人能告訴我為什么會(huì)得到不同的結(jié)果嗎?系統(tǒng)設(shè)置是相同的,我嘗試使用兩者CurrentCulture,但 CreateSpecificCulture("el-GR")沒(méi)有得到與 JS 結(jié)果有任何相似之處。我什至用JS創(chuàng)建了自己的addMinutes(),但仍然有同樣的問(wèn)題??雌饋?lái) JS 正好在開(kāi)始日期后的 100980 分鐘執(zhí)行夏令時(shí)切換(如果添加 100979 分鐘,您就會(huì)看到這一點(diǎn)),但 C# 卻沒(méi)有!根據(jù)維基百科,JS 的行為是正確的行為。但到目前為止我非常確定 .NET 也是正確的。根據(jù)我所做的快速測(cè)試,C# 似乎在 70.2 天前進(jìn)行了切換。在向日期添加分鐘數(shù)時(shí),為了在兩種語(yǔ)言之間獲得相同的結(jié)果,我需要做什么?
查看完整描述

2 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

問(wèn)題是調(diào)用是在withAddMinutes上完成的。盡管有這種標(biāo)記,但對(duì)象的數(shù)學(xué)運(yùn)算并不考慮時(shí)區(qū)。 即使是當(dāng)?shù)貢r(shí)間。DateTimeDateTimeKind.LocalDateTime

由于您使用的是本地類型,因此您可以簡(jiǎn)單地轉(zhuǎn)換為 UTC,進(jìn)行數(shù)學(xué)計(jì)算,然后再轉(zhuǎn)換回來(lái)。

var dt2 = dt.ToUniversalTime().AddMinutes(100980).ToLocalTime();

您可能還想考慮使用該DateTimeOffset類型,并使用TimeZoneInfo.ConvertTime.


查看完整回答
反對(duì) 回復(fù) 2023-09-16
?
繁華開(kāi)滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

NodaTime正如我在問(wèn)題更新中所寫的那樣,我最終使用了。

它仍然不同意moment.js所有的時(shí)間,但我覺(jué)得它更經(jīng)常地同意它。

我想夏令時(shí)是一個(gè)巨大的混亂,沒(méi)有人能夠很好地處理它。


查看完整回答
反對(duì) 回復(fù) 2023-09-16
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)