【发布时间】:2012-10-30 13:25:18
【问题描述】:
当用户进行预订时,我有在服务器中执行的代码。 该代码获取当前世界时间。
现在我可以根据时区更改时间了吗?目前我想使用澳大利亚的时间,即使服务器在美国。
我该怎么做。
我当前的代码是:
booking.CreateDateTime = DateTime.Now.ToUniversalTime();
【问题讨论】:
标签: c# android datetime xamarin.android
当用户进行预订时,我有在服务器中执行的代码。 该代码获取当前世界时间。
现在我可以根据时区更改时间了吗?目前我想使用澳大利亚的时间,即使服务器在美国。
我该怎么做。
我当前的代码是:
booking.CreateDateTime = DateTime.Now.ToUniversalTime();
【问题讨论】:
标签: c# android datetime xamarin.android
你可以使用TimeZoneInfo
DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);
try
{
TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
Console.WriteLine("{0} {1} is {2} local time.",
hwTime,
hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName,
TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));
}
catch (TimeZoneNotFoundException)
{
Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");
}
catch (InvalidTimeZoneException)
{
Console.WriteLine("Registry data on the Hawaiian STandard Time zone has been corrupted.");
}
但我也推荐使用Noda Time,它有很多功能和支持
【讨论】:
无论在何处进行预订,我都会亲自将日期以 UTC 格式存储在服务器上。当您在客户端上显示此预订时,只需将 UTC 转换回本地时间。
或者,如果您想将时间视为澳大利亚时间而不实际在澳大利亚..
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
DateTime UKTime = DateTime.Now;
Console.WriteLine("United Kingdom Time {0}", UKTime);
DateTime CurrentUTC = UKTime.ToUniversalTime();
Console.WriteLine("UTC Time {0}", UKTime);
DateTime OzzieTime = TimeZoneInfo.ConvertTimeFromUtc(CurrentUTC, tzi);
Console.WriteLine("Ozzie Time {0}",OzzieTime);
Console.ReadLine();
产生...
United Kingdom Time 31/10/2012 00:30:10
UTC Time 31/10/2012 00:30:10
Ozzie Time 31/10/2012 11:30:10
【讨论】: