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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 时区 0900是哪,c#-解析DateTime的时区为PST / CEST / UTC /

發(fā)布時間:2023/12/20 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 时区 0900是哪,c#-解析DateTime的时区为PST / CEST / UTC / 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

c#-解析DateTime的時區(qū)為PST / CEST / UTC /

我正在嘗試解析類似于以下內(nèi)容的國際日期時間字符串:

24-okt-08 21:09:06 CEST

到目前為止,我有類似的東西:

CultureInfo culture = CultureInfo.CreateSpecificCulture("nl-BE");

DateTime dt = DateTime.ParseExact("24-okt-08 21:09:06 CEST",

"dd-MMM-yy HH:mm:ss ...", culture);

問題是我應(yīng)該對格式字符串中的“ ...”使用什么? 查看“自定義日期和時間格式字符串” MSDN頁面似乎沒有以PST / CEST / GMT / UTC格式列出用于解析時區(qū)的格式字符串。

6個解決方案

32 votes

AFAIK無法識別時區(qū)縮寫。 但是,如果用時區(qū)偏移量代替縮寫,那就可以了。 例如。:

DateTime dt1 = DateTime.ParseExact("24-okt-08 21:09:06 CEST".Replace("CEST", "+2"), "dd-MMM-yy HH:mm:ss z", culture);

DateTime dt2 = DateTime.ParseExact("24-okt-08 21:09:06 CEST".Replace("CEST", "+02"), "dd-MMM-yy HH:mm:ss zz", culture);

DateTime dt3 = DateTime.ParseExact("24-okt-08 21:09:06 CEST".Replace("CEST", "+02:00"), "dd-MMM-yy HH:mm:ss zzz", culture);

Panos answered 2020-07-24T18:23:05Z

22 votes

快速的答案是,您無法做到。

這就是為什么

有一個世界時區(qū)的權(quán)威數(shù)據(jù)庫,您可以從IANA那里獲取。

問題是3或4個字母的縮寫與IANA時區(qū)具有多對一關(guān)聯(lián)。 例如"CST"的含義不同,這取決于您的文化,所處的世界以及應(yīng)用程序的上下文。

AMT "Armenia Time" Asia UTC + 4 hours

AMT "Amazon Time" South America UTC - 4 hours

如果您真的想解決這個問題,建議您使用Noda Time代表您的"CST"s。 您必須編寫一些代碼將縮寫詞轉(zhuǎn)換為標(biāo)準(zhǔn)IANA時區(qū)。

我們無法為您完成此操作,這取決于您應(yīng)用程序的上下文。

另一個很好的例子是"CST"。

CST "China Standard Time" Asia UTC + 8 hours

CST "Central Standard Time" Central America UTC - 6 hours

CST "Cuba Standard Time" Caribbean UTC - 5 hours

CST "Central Standard Time" North America UTC - 6 hours

Jodrell answered 2020-07-24T18:23:52Z

9 votes

如果您決定走搜索與替換路線的縮寫字典(我這樣做了)。

Dictionary _timeZones = new Dictionary() {

{"ACDT", "+1030"},

{"ACST", "+0930"},

{"ADT", "-0300"},

{"AEDT", "+1100"},

{"AEST", "+1000"},

{"AHDT", "-0900"},

{"AHST", "-1000"},

{"AST", "-0400"},

{"AT", "-0200"},

{"AWDT", "+0900"},

{"AWST", "+0800"},

{"BAT", "+0300"},

{"BDST", "+0200"},

{"BET", "-1100"},

{"BST", "-0300"},

{"BT", "+0300"},

{"BZT2", "-0300"},

{"CADT", "+1030"},

{"CAST", "+0930"},

{"CAT", "-1000"},

{"CCT", "+0800"},

{"CDT", "-0500"},

{"CED", "+0200"},

{"CET", "+0100"},

{"CEST", "+0200"},

{"CST", "-0600"},

{"EAST", "+1000"},

{"EDT", "-0400"},

{"EED", "+0300"},

{"EET", "+0200"},

{"EEST", "+0300"},

{"EST", "-0500"},

{"FST", "+0200"},

{"FWT", "+0100"},

{"GMT", "GMT"},

{"GST", "+1000"},

{"HDT", "-0900"},

{"HST", "-1000"},

{"IDLE", "+1200"},

{"IDLW", "-1200"},

{"IST", "+0530"},

{"IT", "+0330"},

{"JST", "+0900"},

{"JT", "+0700"},

{"MDT", "-0600"},

{"MED", "+0200"},

{"MET", "+0100"},

{"MEST", "+0200"},

{"MEWT", "+0100"},

{"MST", "-0700"},

{"MT", "+0800"},

{"NDT", "-0230"},

{"NFT", "-0330"},

{"NT", "-1100"},

{"NST", "+0630"},

{"NZ", "+1100"},

{"NZST", "+1200"},

{"NZDT", "+1300"},

{"NZT", "+1200"},

{"PDT", "-0700"},

{"PST", "-0800"},

{"ROK", "+0900"},

{"SAD", "+1000"},

{"SAST", "+0900"},

{"SAT", "+0900"},

{"SDT", "+1000"},

{"SST", "+0200"},

{"SWT", "+0100"},

{"USZ3", "+0400"},

{"USZ4", "+0500"},

{"USZ5", "+0600"},

{"USZ6", "+0700"},

{"UT", "-0000"},

{"UTC", "-0000"},

{"UZ10", "+1100"},

{"WAT", "-0100"},

{"WET", "-0000"},

{"WST", "+0800"},

{"YDT", "-0800"},

{"YST", "-0900"},

{"ZP4", "+0400"},

{"ZP5", "+0500"},

{"ZP6", "+0600"}

};

Jussi Palo answered 2020-07-24T18:24:12Z

3 votes

我有兩個答案,因為我不確定您要問什么。

1)我看到您正在使用CultureInfo,所以如果您只想格式化特定于文化的日期和時間,我將日期/時間和時區(qū)分開,在日期/時間上應(yīng)用文化方法并附加時區(qū)。 如果“ CEST”因不同的文化而不同,則您必須通過列出所有選項來更改它(可能在案例聲明中)。

2)如果您想將日期/時間轉(zhuǎn)換為其他時區(qū),則不能使用CultureInfo,

我建議閱讀:[http://msdn.microsoft.com/en-us/library/ms973825.aspx]

您還可以使用.net Framework 3.5類TimeZoneInfo(與TimeZone不同)來簡化生活。

[HTTP://MSDN.Microsoft.com/恩-US/library/system.timezone info.aspx]

hmak answered 2020-07-24T18:24:55Z

0 votes

這是這樣的:

獲取字符串(前提條件:格式:ddd,dd MMM yyyy HH:mm:ss zzz)

獲取最后一個空格

從字符串中刪除zzz,但保存zzz的值

zzz的查詢偏移量

向字符串添加偏移量

string dateString = reader.ReadContentAsString();

int timeZonePos = dateString.LastIndexOf(' ') + 1;

string tz = dateString.Substring(timeZonePos);

dateString = dateString.Substring(0, dateString.Length - tz.Length );

dateString += s_timeZoneOffsets[tz];

// https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx

//string es = reader.ReadElementString("pubDate");

this.m_value = System.DateTime.ParseExact(dateString, "ddd, dd MMM yyyy HH:mm zzz", System.Globalization.CultureInfo.InvariantCulture);

private static System.Collections.Generic.Dictionary s_timeZoneOffsets =

new System.Collections.Generic.Dictionary() {

{"ACDT", "+10:30"},

{"ACST", "+09:30"},

{"ADT", "-03:00"},

{"AEDT", "+11:00"},

{"AEST", "+10:00"},

{"AHDT", "-09:00"},

{"AHST", "-10:00"},

{"AST", "-04:00"},

{"AT", "-02:00"},

{"AWDT", "+09:00"},

{"AWST", "+08:00"},

{"BAT", "+03:00"},

{"BDST", "+02:00"},

{"BET", "-11:00"},

{"BST", "-03:00"},

{"BT", "+03:00"},

{"BZT2", "-03:00"},

{"CADT", "+10:30"},

{"CAST", "+09:30"},

{"CAT", "-10:00"},

{"CCT", "+08:00"},

{"CDT", "-05:00"},

{"CED", "+02:00"},

{"CET", "+01:00"},

{"CEST", "+02:00"},

{"CST", "-06:00"},

{"EAST", "+10:00"},

{"EDT", "-04:00"},

{"EED", "+03:00"},

{"EET", "+02:00"},

{"EEST", "+03:00"},

{"EST", "-05:00"},

{"FST", "+02:00"},

{"FWT", "+01:00"},

{"GMT", "+00:00"},

{"GST", "+10:00"},

{"HDT", "-09:00"},

{"HST", "-10:00"},

{"IDLE", "+12:00"},

{"IDLW", "-12:00"},

{"IST", "+05:30"},

{"IT", "+03:30"},

{"JST", "+09:00"},

{"JT", "+07:00"},

{"MDT", "-06:00"},

{"MED", "+02:00"},

{"MET", "+01:00"},

{"MEST", "+02:00"},

{"MEWT", "+01:00"},

{"MST", "-07:00"},

{"MT", "+08:00"},

{"NDT", "-02:30"},

{"NFT", "-03:30"},

{"NT", "-11:00"},

{"NST", "+06:30"},

{"NZ", "+11:00"},

{"NZST", "+12:00"},

{"NZDT", "+13:00"},

{"NZT", "+12:00"},

{"PDT", "-07:00"},

{"PST", "-08:00"},

{"ROK", "+09:00"},

{"SAD", "+10:00"},

{"SAST", "+09:00"},

{"SAT", "+09:00"},

{"SDT", "+10:00"},

{"SST", "+02:00"},

{"SWT", "+01:00"},

{"USZ3", "+04:00"},

{"USZ4", "+05:00"},

{"USZ5", "+06:00"},

{"USZ6", "+07:00"},

{"UT", "-00:00"},

{"UTC", "-00:00"},

{"UZ10", "+11:00"},

{"WAT", "-01:00"},

{"WET", "-00:00"},

{"WST", "+08:00"},

{"YDT", "-08:00"},

{"YST", "-09:00"},

{"ZP4", "+04:00"},

{"ZP5", "+05:00"},

{"ZP6", "+06:00"}

};

Stefan Steiger answered 2020-07-24T18:25:41Z

-1 votes

這就是我要做的。

我從javascript接收了datetime,然后將其傳遞到ASP.NET以存儲在Oracle數(shù)據(jù)庫中。 這是我在東部和中部時間的C#代碼。

string datetimevalue = hidfileDateTime.Value;

datetimevalue= datetimevalue.Replace("EDT", "EST");

datetimevalue = datetimevalue.Replace("CDT", "CST");

if (datetimevalue.Contains("CST"))

{

filedt = DateTime.ParseExact(datetimevalue, "ddd MMM d HH:mm:ss CST yyyy", provider).ToUniversalTime().AddHours(1).ToLocalTime();

}

else

{

filedt = DateTime.ParseExact(datetimevalue, "ddd MMM d HH:mm:ss EST yyyy", provider);

}

Deep Kumar answered 2020-07-24T18:26:05Z

總結(jié)

以上是生活随笔為你收集整理的linux 时区 0900是哪,c#-解析DateTime的时区为PST / CEST / UTC /的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。