हालांकि यह है एक सा ... अनुभवहीन शायद, यह एक तरह से एक प्राप्त करने के लिए है एक स्विच स्टेटमेंट के बिना संक्षिप्त नाम:
[Regex]::Replace([System.TimeZoneInfo]::Local.StandardName, '([A-Z])\w+\s*', '$1')
मेरा regu लार अभिव्यक्ति शायद वांछित होने के लिए कुछ छोड़ देता है।
मेरे समय क्षेत्र के लिए उपरोक्त का आउटपुट EST
है। मैंने कुछ ऐसा देखा क्योंकि मैं देखना चाहता था कि अन्य जीएमटी ऑफ़सेट सेटिंग्स के लिए मूल्य क्या होगा, लेकिन .NET में DateTime
और TimeZoneInfo
के बीच बहुत अच्छे लिंक नहीं दिखते हैं, इसलिए मैं प्रोग्रामिंग के माध्यम से प्रोग्रामिंग के माध्यम से केवल सभी को चलाने के लिए नहीं चला सकता । यह StandardName
के लिए वापस आने वाले कुछ तारों के लिए ठीक से काम नहीं कर सकता है।
संपादित करें: मैं कुछ और जांच अपने कंप्यूटर पर समय क्षेत्र बदलने के लिए मैन्युअल रूप GMT+12
के लिए इस और एक TimeZoneInfo
जांच करने के लिए किया था इस तरह दिखता है:
PS> [TimeZoneInfo]::Local
Id : UTC+12
DisplayName : (GMT+12:00) Coordinated Universal Time+12
StandardName : UTC+12
DaylightName : UTC+12
BaseUtcOffset : 12:00:00
SupportsDaylightSavingTime : False
कौन सा मेरी कोड के लिए यह परिणाम पैदा करता है:
PS> [Regex]::Replace([System.TimeZoneInfo]::Local.StandardName, '([A-Z])\w+\s*', '$1')
U+12
तो, मुझे लगता है कि आपको यह पता लगाना होगा कि StandardName
शब्दों का एक सेट या बस ऑफसेट पदनाम प्रतीत होता है क्योंकि इसके लिए कोई मानक नाम नहीं है।
PS> [TimeZoneInfo]::Local
Id : Tokyo Standard Time
DisplayName : (GMT+09:00) Osaka, Sapporo, Tokyo
StandardName : Tokyo Standard Time
DaylightName : Tokyo Daylight Time
BaseUtcOffset : 09:00:00
SupportsDaylightSavingTime : False
PS> [Regex]::Replace([System.TimeZoneInfo]::Local.StandardName, '([A-Z])\w+\s*', '$1')
TST
सौंदर्य की तरह काम करता है! –
@ केन मैं उस पर थोड़ा शर्मिंदा था, लेकिन मुझे खुशी है कि यह चाल है :)। – Shibumi
'एसए प्रशांत मानक समय '' एसपीएसटी' बन गया; जो वास्तव में सटीक नहीं है। आपके द्वारा दी गई जानकारी हालांकि बहुत उपयोगी थी। मैंने बस ऑफसेट ऑफसेट प्राप्त करने का फैसला किया: '[System.TimeZone] :: CurrentTimeZone.GetUtcOffset ([डेटाटाइम] :: अब)। टोटलमिन्यूट्स ' – VertigoRay