你需要跟蹤的選項,用戶的地方,在cookie或數據庫,則需要兩個值存儲幫助你在i18n(國際化),然後,當你需要格式化的東西使用這兩類c#:TimeZoneInfo和CultureInfo,第一個需要國家時區,第二個需要時區(您可以在TimeZoneInfo.GetSystemTimeZones()
之間看到所有時區,然後使用這些類來設置文本的格式。
一個例子:
var timeZoneInfo = string.IsNullOrEmpty(Settings.CountryTimezone) ?
TimeZoneInfo.Local :
TimeZoneInfo.FindSystemTimeZoneById(Settings.CountryTimezone);
var cultureInfo = string.IsNullOrEmpty(Settings.CountryCulture) ?
CultureInfo.CurrentCulture :
CultureInfo.GetCultureInfo(Settings.CountryCulture);
然後使用這個對象是這樣的:
var dateTime = TimeZoneInfo.ConvertTimeFromUtc(client.ActivatedOn.Value.UtcDateTime, timeZoneInfo);
而且在(比如)一個觀點:
@dateTime.ToString("G", cultureInfo)
有了這個,你會不僅向用戶顯示正確的日期(儘管在該國的夏令時),而是以本地格式顯示。
非常不清楚你在問什麼......給我「系統時間設置爲UTC」意味着UTC *是當地時間* - 你正在尋找什麼其他當地時間?另外「IIS」有點奇怪的標籤 - 可能你的意思是「這是定製的非ASP.Net框架中的Web服務器代碼」 - 你可能想要發佈並澄清。 –