2015-10-05 53 views
0

我們以前的開發人員創建一個通用方法,檢索具有更新/更改的所有用戶輸入。 它看起來像這樣(用戶端/ JavaScript的/劍道):asp.net檢索由JSON.stringify轉換的原始日期值

param._updated = JSON.stringify(rows._updated); 

我莫名其妙地不顧一切,當該* rows._updated包含日期值叔叔JSON轉換爲一種可導致以其他字符串格式日期時間區別例如:

dateField = 11/1/2015 // <--Original User Input 
rows._updated = { dateField: November 1, 2015 0:00:00 GMT+080 ... } 
param._updated = { "dateField": "2015-10-31T16:00:00.0000Z"... } 

現在會導致衝突。 因爲上面的代碼是可能包含不同數據和類型的通用字段,所以我試圖在服務器端解決這個問題,但是我未能實現原始日期值。

注意:我們的用戶有2-5個不同的時區,因此很難對轉換進行硬編碼。 相關問題:here

天色已晚。提前致謝!。

回答

0

不知何故,我達到我想要通過以下方法

1)在後端的日期時間轉換爲UTC格式

string dateUTC = paramDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"); 

2)現在我已經創建了將要處理的方法UTC日期轉換爲PlainDate

 public static string UTCtoPlainDate(string dateUTC) 
    { 
     if (string.IsNullOrEmpty(dateUTC)) return ""; 
     DateTime dateTime; 
     // Assume date in UTC format, e.g. '2015-03-31T12:00:00.000Z' 
     DateTime.TryParseExact(dateUTC, "yyyy-MM-dd'T'HH:mm:ss.fff'Z'", System.Globalization.CultureInfo.InvariantCulture, 
      System.Globalization.DateTimeStyles.AssumeUniversal, out dateTime); 

     return dateTime.ToString("yyyy-MM-dd") ?? ""; 
    }