2011-11-03 161 views
0

將日期對象轉換爲實際日期時出現問題。將對象轉換爲日期時間

我正在讀取數據表中的值,並將它們發送給JavaScriptSerializer,以便我可以在名爲fullCalendar的開放源代碼日曆中使用這些值。

問題是,來自JavaScriptSerializer的提要包含日期和布爾值。

我的代碼如下所示:

 Dim rows As New List(Of Dictionary(Of String, Object)) 
    Dim row As Dictionary(Of String, Object) 
    For Each dr2 As DataRow In table.Rows 
     row = New Dictionary(Of String, Object) 
     For Each col As DataColumn In table.Columns 
      If TypeOf (dr2(col)) Is DateTime Then 
       dr2(col) = Convert.ToDateTime(dr2(col)) 
      End If 
      row.Add(col.ColumnName, dr2(col)) 
     Next 
     rows.Add(row) 
    Next 

    Dim serializer As New JavaScriptSerializer() 
    Dim jsonEvents As String = serializer.Serialize(rows) 
    Return jsonEvents 

它運行沒有任何錯誤,而所有這些數值好看,除了日期值。他們看起來很奇怪:「\/Date(1313409600000)\ /」。它們看起來像數據庫中的常規日期,所以我不確定這裏發生了什麼。

有什麼建議嗎?

謝謝!

+1

的Javascript日期在內部存儲爲UNIX風格的時間戳,以毫秒爲單位一千九百七十〇分之一。 '1313409600000'對應於2011年8月15日。 –

+0

噢,我不知道。也許問題出在那裏的「\ /」字符......我不知道他們是如何到達那裏的。 - 謝謝 – SkyeBoniwell

回答

1

如果您使用.NET 3.5以上,且列DATETIME類型,你應該能夠做到這一點:

Dim dt As DateTime = dr.Field(Of DateTime)("DateColumn") 
1月以來
+0

我試過了,但我仍然得到相同的日期格式。這裏是它現在的樣子:'code' If TypeOf(dr2(col))is DateTime Then 'Debug.Write(「boolean object found:」&dr2(col)) 'dr2(col)= Convert.ToDateTime (DR2(COL)) row.Add(col.ColumnName,dr2.Field(中日期時間)(COL)) 否則 row.Add(col.ColumnName,DR2(COL)) 完If'code' – SkyeBoniwell