2010-08-24 154 views
1

作为后续链接的后续。如何从UTC日期格式获取正确的时区(服务器时区)

How to format this date type 2010-06-24T00:00:00Z to sun,24/06/10 7.15 p.m (CDT) using javascript or jquery

我UTC日期格式转换为简单的日期格式。 (CDT)(转换时间) 2010-06-24T00:00:00Z到太阳,24/06/10但是有没有一种方法来识别有效时区,基于客户端m/c的区域。 还是我们无法从UTC检测到有效时区?

欣赏快速反应。

回答

0

UTC没有时区,它是“通用”的,因为无论你身在何处,它总是一样的。时区信息必须由观察者确定。

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; 
} 
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(); 
相关问题