作为以下链接的后续内容。
我正在将utc日期格式转换为简单的日期格式:
2010-06-24T00:00:00Z to sun,24/06/10 7.15 p.m(CDT)(转换时间)
但是有没有办法识别有效时区,因为上述转换始终会根据客户端计算机检测时区。或者我们无法从UTC检测到有效时区?
答案 0 :(得分:0)
UTC没有时区,它是“通用的”,因为无论你身在何处,它都是一样的。时区信息必须由观察员确定。
答案 1 :(得分:0)
您没有定义“有效时区”的含义 - 您的意思是本地时区吗? (毕竟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;
}
答案 2 :(得分:0)
您可以使用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();