【问题标题】:Date format from database gets wrong date in vb.net数据库中的日期格式在 vb.net 中获取错误的日期
【发布时间】:2014-03-07 08:31:55
【问题描述】:

我正在从 SQL 数据库中获取数据,现在我正在尝试将数据转换为 VB.NET 中的正确日期变量,但我没有得到正确的格式。

来自数据库的数据:

28-FEB-14 01:00:00:0
28-FEB-14 13:00:00:0

我尝试转换它时得到的日期:

2028-02-14
2028-02-14 12:00:00

进行转换的代码:

    Dim theDate As DateTime
    Dim try1 As Date

    For i As Integer = 0 To batchCount - 1
        If Date.TryParse(dv(i)(0), theDate) = True Then
            try1 = theDate.ToUniversalTime()
        End If

我将不胜感激。

【问题讨论】:

标签: sql .net vb.net parsing date


【解决方案1】:

首先,数据库中的日期值应该是日期类型,所以当你读入它们时,你将它们读入一个日期类型变量。

如果您想格式化该日期,您可以使用 ToString 重载

Dim theDate as DateTime = dr.item("date")
Debug.Writeline(theDate.ToString("yyyy-MM-dd")

其次,如果日期作为字符串字段存储在数据库中(您不应该这样做,但您可能无法控制),它应该采用特定格式,因此您可以使用 ParseExact 将其转换为日期:

Dim dateString As String
dateString = DateTime.ParseExact(dr.item("Date"), "dd-MMM-yy HH:mm:ss.f", CultureInfo.CurrentCulture)

【讨论】:

  • 感谢您的快速回复。我试图解析它,但我收到错误“字符串未被识别为有效的日期时间”。猜我在解析上做错了。 28-FEB-14 01:00:00:0 = "dd-MMM-yy HH-mm:ss:f",这不是正确的解析吗?
  • 再次感谢我怀疑我的错。 dd-MMM-yy HH:mm:ss.f"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-04
相关资源
最近更新 更多