作爲後續鏈接的後續。如何從UTC日期格式獲取正確的時區(服務器時區)
我UTC日期格式轉換爲簡單的日期格式。 (CDT)(轉換時間) 2010-06-24T00:00:00Z到太陽,24/06/10但是有沒有一種方法來識別有效時區,基於客戶端m/c的區域。 還是我們無法從UTC檢測到有效時區?
欣賞快速反應。
作爲後續鏈接的後續。如何從UTC日期格式獲取正確的時區(服務器時區)
我UTC日期格式轉換爲簡單的日期格式。 (CDT)(轉換時間) 2010-06-24T00:00:00Z到太陽,24/06/10但是有沒有一種方法來識別有效時區,基於客戶端m/c的區域。 還是我們無法從UTC檢測到有效時區?
欣賞快速反應。
UTC沒有時區,它是「通用」的,因爲無論你身在何處,它總是一樣的。時區信息必須由觀察者確定。
您沒有定義「有效時區」的含義 - 您的意思是本地時區? (UTC畢竟是一個完全有效的時區 - 或者至少是在西歐時區,而不是英國夏令時...)
如果你有一個UTC日期,你想轉它爲本地時區的日期,這是簡單的:
function UTCtoLocal(inDate) {
// inDate can be null, a string or an object
// if it's an object, it can be a date or event
var localDate = new Date();
var utcDate = new Date().toUTCString();
if (inDate) {
if (typeof inDate == "string") {
utcDate = inDate;
}
else {
if (inDate.getDay) { // is it really a date?
utcDate = inDate.toString();
}
}
}
utcDate = utcDate.substr(0, utcDate.length-3);
localDate.setTime(Date.parse(utcDate));
return localDate;
}
您可以使用下面的代碼在C#中通過將時區值來獲得的日期(例如: +08:00:00)
Console.WriteLine("Enter the Time zone: ");
string zoneInfo = Console.ReadLine();
int Flags = 0;
ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
string myTime = "";
string displayName = "";
foreach (var timeZoneInfo in zones)
{
if (timeZoneInfo.BaseUtcOffset`enter code here`.ToString().Equals(zoneInfo))
{
string timeZoneId = timeZoneInfo.Id;`enter code here`
myTime = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById(timeZoneId)).ToString();
displayName = timeZoneInfo.DaylightName.ToString();
break;
}
}
Console.WriteLine(displayName + ":" + myTime);
Console.ReadLine();