我们有一个VB.Net 2008控制台应用程序,其Module1.vb从我们的SQL Server数据库执行一些查询,并将它们作为XML输出以发送给我们的客户。
问题是只包含时间(例如,1900-01-01 21:26:03.000)的DateTime元素正在输出到附加了“-06:00”的UTC(通用时间)偏移量的XML,例如,13:56:55.0000000-06:00
当我们的客户在东部时区访问时,这会转换为一小时后,因此他们请求的时间值为13:56:55.0000000,不含-06.00。
有谁知道怎么做?
详细说明:
VS解决方案有一个Web引用我称之为WS。 Module1.vb查询数据库,比如说tblStats表,然后通过DataReader读取数据。每行都有:
Dim MyWS As New WS.tblSTATS_TYPE_V1 'which is a complexType in the wsdl
MyWS.Start_Time = CheckTime(MyDataReader("START_TIME"))
...... CheckTime是:
Private Function CheckTime(ByVal Value As Object) As DateTime
If (IsNothing(Value) = True) Then Return New DateTime(0)
If (IsDBNull(Value) = True) Then Return New DateTime(0)
If (IsDate(Value) = False) Then Return New DateTime(0)
Return New DateTime(CDate(Value).TimeOfDay.Ticks, DateTimeKind.Unspecified)
End Function
...但我添加的DateTimeKind.Unspecified没有效果。
任何人都可以给予的任何指示都将受到赞赏 - 谢谢!
答案 0 :(得分:0)
您可以使用DateTimeOffset而不是DateTime类。它提供了额外的时区信息。