c#中的TimeZone.getDefault(). getid()等价于Java中的什么?

本文关键字:什么 Java getid 中的 TimeZone getDefault 等价于 | 更新日期: 2023-09-27 18:09:02

对于一个生活在Molossia共和国的人,下面的Java代码:

String TimeZoneId=TimeZone.getDefault().getID();
System.out.println(TimeZoneId);

将打印

美国/Regina

我尝试了TimeZoneInfo.GetSystemTimeZones(),但返回值似乎不是tzdb id。c#中有等效的方法吗?

c#中的TimeZone.getDefault(). getid()等价于Java中的什么?

。Net本身并不支持TZDB,因为微软有自己的时区数据库。详细信息请参见时区标签wiki。

如果您想使用TZDB区域,请使用NodaTime库。你的问题的准确翻译是:

using NodaTime;
...
var timeZoneId = DateTimeZoneProviders.Tzdb.GetSystemDefault().Id;
Console.WriteLine(timeZoneId);

这通常可以使用TimeZone类来完成。从我的理解来看,这是最接近本机库的。你为什么需要那个具体的结果?

查看微软时区和Windows等效的转换表*,因为Windows不完全支持TZID,请查看下面的堆栈溢出问题以获取更多信息。我希望这是更有用的,因为我误解了你之前的问题!!——对不起!

//Get A reference to our timezone object
TimeZone t = TimeZone.CurrentTimeZone;
//Print out the display name
Console.WriteLine(t.StandardName);

MSDN REFERENCE

http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html

请参考前面的stackoverflow问题.NET TimeZoneInfo from Olson time zone

返回类似的值
Calendar.GetTimeZone

查看更多信息:https://learn.microsoft.com/en-us/uwp/api/windows.globalization.calendar.gettimezone?view=winrt-20348