c# - 访问当前系统时区

标签 c# unity-game-engine timezone system monodevelop

基本上我可以使用以下代码检测系统时区列表:

foreach(TimeZoneInfo info in tz)
    Debug.Log("time zone id : " + info.Id + " display name : " + info.DisplayName);

运行此代码,我在控制台中得到以下输出。

enter image description here

在此列表中,我想知道我当前的系统遵循哪一个? 因为我想要有关该时区的具体信息。就像下面的代码一样,我清楚地写着“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/

相关文章:

c# - 项目引用不会编译 'should be reference'

c# - 从 Unity3d 调用 native DLL 的最佳方法是什么?

android - Unity 中的原生 C++ 和 Java Android 库

java - 在 Hibernate 中保留 Joda DateTime 而不是 Java Date

java - 从 CST 到 GMT 的日期格式转换不起作用

unix - 更改 UNIX 进程的系统时间?

c# - HTML 解析器。加载文件或程序集失败

c# - 在 EF 模型优先中指定索引列

c# - WPF 将 ObservableCollection 绑定(bind)到 UserControl 的意外行为

android - 场景背景不显示相机捕获