0
我有用戶進行預訂時在服務器中執行的代碼。 該代碼獲取當前的通用時間。獲取當前本地時間
現在我可以根據時區更改時間。目前我想使用澳大利亞的時間,即使服務器在美國。
我該怎麼做。
我當前的代碼是:
booking.CreateDateTime = DateTime.Now.ToUniversalTime();
我有用戶進行預訂時在服務器中執行的代碼。 該代碼獲取當前的通用時間。獲取當前本地時間
現在我可以根據時區更改時間。目前我想使用澳大利亞的時間,即使服務器在美國。
我該怎麼做。
我當前的代碼是:
booking.CreateDateTime = DateTime.Now.ToUniversalTime();
您可以使用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