Loading

DateTime Convert for two timezone

    /// <summary>
    /// The recording time is China time, but running CUIT with CI is America time.
    /// </summary>
    /// <param name="inputDateString">China input date time, e.g, "2011-7-18"</param>
    /// <returns></returns>
    public static DateTime GetCIServerInputDateTime(string inputDateString)
    {
        if (!TimeZone.CurrentTimeZone.StandardName.Equals("China Standard Time"))
        {
            // America server time
            DateTime dateTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local);
 
            // China time
            dateTime = TimeZoneInfo.ConvertTimeFromUtc(dateTime, TimeZoneInfo.FindSystemTimeZoneById("China Standard Time"));
 
            // Input China datetime
            DateTime inputChinaDateTime =
                DateTime.Parse(inputDateString).Add(new TimeSpan(dateTime.Hour, dateTime.Minute, dateTime.Second));
 
            // Convert to input America datetime
            DateTime inputAmericaDateTime = TimeZoneInfo.ConvertTime(inputChinaDateTime,
                                                                     TimeZoneInfo.FindSystemTimeZoneById(
                                                                         "China Standard Time"),
                                                                     TimeZoneInfo.Local);
            return inputAmericaDateTime;
        }
 
        return DateTime.Parse(inputDateString);
    }
posted @ 2011-07-24 23:39  .net's  阅读(806)  评论(1)    收藏  举报