基本上我可以使用以下代码检测系统时区列表:
foreach(TimeZoneInfo info in tz)
Debug.Log("time zone id : " + info.Id + " display name : " + info.DisplayName);
运行此代码,我在控制台中得到以下输出。
在此列表中,我想知道我当前的系统遵循哪一个? 因为我想要有关该时区的具体信息。就像下面的代码一样,我清楚地写着“Asia/Kolkata”。
TimeZoneInfo infos = System.TimeZoneInfo.FindSystemTimeZoneById("Asia/Kolkata");
通过运行哪个代码,我可以获得“Asia/Kolkata”作为输出?
编辑:我已经在这里使用 NodaTime 并为此目的运行代码。
// Create a NodaTime DateTimeZoneSource object for IANA time zone names
var dateTimeZoneSource = TzdbDateTimeZoneSource.Default;
// Get the Windows time zone by name (or use TimeZoneInfo.Local)
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
// Convert between Windows and IANA time zone names
var tzdbTimeZoneInfo = dateTimeZoneSource.MapTimeZoneId(timeZoneInfo);
Console.WriteLine(tzdbTimeZoneInfo);
但是在这方面,我遇到了异常(exception),
Exception of type 'System.TimeZoneNotFoundException' was thrown.
我使用 Mac 系统和编辑器作为 Mono Develop - Unity,我的目标设备是 iPhone。
最佳答案
使用下面的代码您可以获取本地TimeZoneInfo对象。
TimeZoneInfo infos = TimeZoneInfo.Local;
关于c# - 访问当前系统时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237223/