如何在“VB.Net”中将我的“Date.Today”格式化为MM / dd / yyyy到dd / MM / yyyy?

时间:2014-03-05 16:47:53

标签: sql sql-server vb.net date datetime

基本上我在修复“日期”以及如何在SQL中保存时遇到问题。它现在工作,它插入表等,但不是我想要插入的格式。它插入为MM/dd/yyyy(就我所知的美式方式而言)但我需要按照我们在英国使用的格式进行插入,所以是的,它需要显示为dd/MM/yyyy(03 / 05/2014)。

实际上是否可以将其转换为我的不同时区&如果是这样,它是如何完成的? (完成后我的意思是指导我,否则我不会学习。)

这是我的代码,介绍了如何将插入包含到实际的SQL数据库中。

 Protected Sub OkBtn_Click(sender As Object, e As System.EventArgs) Handles OkBtn.Click
    Try
        '  Dim DayNo As Integer = 0
        ' Dim DateNo As Integer = 0
        ' Dim StartingDay As Integer = 0
        Dim ThisDay As Date = Date.Today
            ' Dim Week As Integer = 1
            ' StartingDay = ThisDay.AddDays(-(ThisDay.Day - 1)).DayOfWeek
            ' DayNo = ThisDay.DayOfWeek
            ' DateNo = ThisDay.Day
            ' Week = Fix(DateNo / 7)
            ' If DateNo Mod 7 > 0 Then
            'Week += 1
            ' End If
            ' If StartingDay > DayNo Then
            'Week += 1
            ' End If
            'Dim ThisWeek As String
            ' ThisWeek = Week
            Dim ThisUser As String
            ThisUser = Request.QueryString("")
            If ThisUser = "" Then
                ThisUser = "Chris Heywood"
            End If
            connection.Open()
            command = New SqlCommand("Insert Into FireTest([Date],[Type],[Comments],[Completed By]) Values(@Date,@Type,@Comments,@CompletedBy)", connection)
            command.Parameters.AddWithValue("@Date", ThisDay.ToString)
            command.Parameters.AddWithValue("@Type", DropDownList1.SelectedValue)
            command.Parameters.AddWithValue("@Comments", TextBox2.Text)
            command.Parameters.AddWithValue("@CompletedBy", ThisUser)
            'command.Parameters.AddWithValue("@Week", ThisWeek)
            command.ExecuteNonQuery()
    Catch ex As Exception
        MessageBox.Show("Please make sure all fields are filled in!")
    End Try
    connection.Close()
    Response.Redirect("~/Production/Navigator.aspx")
End Sub
编辑:我编辑了它插入的方式&虽然有效但仍然没有显示为dd / MM / yyyy。

4 个答案:

答案 0 :(得分:4)

由于您的数据库列是date类型,因此在添加参数时删除.ToString调用:

command.Parameters.AddWithValue("@Date", ThisDay)

答案 1 :(得分:2)

如果您在日期列中有日期时间数据类型

,请不要将日期时间保存为数据库中的字符串
command.Parameters.AddWithValue("@Date", ThisDay)

您不需要致电tostring

但在这种情况下我甚至不会使用参数。我会让db插入日期

Insert Into FireTest([Date],[Type],[Comments],[Completed By]) Values(GETDATE(),@Type,@Comments,@CompletedBy)

答案 2 :(得分:1)

可以尝试Date.Today.ToShortDateString

我使用它的另一种方法Date.Today.ToString("dd/MM/yyyy")

尝试一下,然后再回到我身边。

编辑:

试试这个:

Dim culture As New CultureInfo("fr-FR") 
Date.Today.ToString("dd/MM/yyyy", culture)

答案 3 :(得分:1)

使用AddWithValue时,添加值的类型应反映DB中的列类型。只需将您的代码更改为:

command.Parameters.AddWithValue("@Date", Date.Today)