gpt4 book ai didi

c# - 无论设备时区如何,都获取特定时区的 DateTime.Now?

转载 作者:可可西里 更新时间:2023-11-01 09:17:12 26 4
gpt4 key购买 nike

我有一个处理来自网络服务的数据的 MonoTouch 应用程序。此数据包含特定于时区的日期信息。新西兰时区为 UTC +12。

我的应用程序根据当前时间显示此数据。这样做的问题是,当应用程序在不同的时区中使用时,数据无法正确显示,因为设备上的当前时间不正确。

无论设备上的语言环境/时区设置如何,如何获取 UTC +12 的当前日期时间?

编辑:

我已经根据以下答案尝试了以下代码:

TimeZoneInfo.ConvertTime (DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("Pacific/Auckland"));

此代码在我的计算机上运行良好,但是当我在 MonoTouch 中运行它时,出现以下异常:

System.ArgumentException: Kind propery of dateTime is Local but the sourceTimeZone does not equal TimeZoneInfo.Local
at System.TimeZoneInfo.ConvertTime (DateTime dateTime, System.TimeZoneInfo sourceTimeZone, System.TimeZoneInfo destinationTimeZone) [0x00018] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System/TimeZoneInfo.cs:179
at System.TimeZoneInfo.ConvertTime (DateTime dateTime, System.TimeZoneInfo destinationTimeZone) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System/TimeZoneInfo.cs:173

最佳答案

使用 DateTime.Now。这将为您提供系统时区日期和时间。现在像这样将该时间转换为所需的时区时间

var indianTime = TimeZoneInfo.ConvertTime (DateTime.Now,
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));

要获取时区列表,请运行此方法

ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("The local system has the following {0} time zones", zones.Count);
foreach (TimeZoneInfo zone in zones)
Console.WriteLine(zone.Id);

关于c# - 无论设备时区如何,都获取特定时区的 DateTime.Now?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com