簡體   English   中英

我如何從我轉換為 MM-DD-yyyy 的格式日期添加文本“0”)

[英]how do i add a text "0" from the format date which i converted to MM-DD-yyyy")

我正在從數據庫中提取日期“ddMMyyyy”,然后在顯示輸出之前將日期轉換為 MM-dd-yyyy“。出於某種原因,有些日期只包含 7 位數字,默認情況下它必須是 8 位數字。

當系統發現日期中的數字少於 8 個字符時,它會引發轉換日期的錯誤,作為一個選項,我想在顯示輸出的當天添加 0。 例如 08-12-1983,默認來自數據庫 8-12-1983

我想在顯示輸出的那一天加 0。

我使用了 vb.net 和 sql 命令。

這是我的代碼。

Public BGC1, BGC2, BGC3, BGC4 As String
Public str As String

 Public Sub GetBGC()
        Try
            myConnection.Open()
            'Main.PresStartResults.Text = "Prestart Checks : "
            'Main.BGCName.Text = "Employee Name "
            'Main.BGCDOB.Text = "DOB"
            'Dim str As String
            str = "SELECT * FROM tblEmp WHERE (EmpID = '" & ADS.UserEmpID & "')"
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            dr = cmd.ExecuteReader
            While dr.Read()
                Dim stringinp = dr("DOB").ToString
                Dim DateTime1 = DateTime.ParseExact(stringinp, "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture)
                Dim outp = DateTime1.ToString("MM-dd-yyyy")
                BGC3 = outp


            End While


        Catch ex As Exception

            MsgBox("Unable to Connect to BGC DB. You may not have access or DB not available." & ex.ToString)
        End Try

myConnection.Close()
Imports System
Imports System.Globalization

Public Module Module1

    Public Sub Main()

        Dim dateValue as DateTime
        Dim stringinp as String
        stringinp = "8-12-1983"
        Dim formats = New String(){"dd-MM-yyyy", "d-MM-yyyy", "MM-dd-yyyy"}

        For Each format as String in formats
            If DateTime.TryParseExact(stringinp, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, dateValue)
                Exit For            
            End If
        Next

        Console.WriteLine(dateValue)

    End Sub
End Module

您可以使用PadLeft方法,如下所示:

Dim stringinp = dr("DOB").ToString().PadLeft(8, "0")

它將在字符串的開頭附加零,直到字符串的長度等於 8。

嘗試這個

str = "SELECT * FROM tblEmp WHERE (EmpID = '" & ADS.UserEmpID & "')"
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            dr = cmd.ExecuteReader
            While dr.Read()
                dim mydate as Date = dr("DOB")
                Dim outp = mydate.tostring("M/dd/yyyy")
                BGC3 = outp


            End While

或者

Dim outp = mydate.tostring("MM/dd/yyyy") 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM