作为后续链接的后续。如何从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();