簡體   English   中英

取一個字符串並將其轉換為日期

[英]take a string and turn it into a date

我需要將 20230131 之類的字符串轉換為 2023/01/31,然后最終將其重新格式化為 DD/MM/YR 格式。 我正在通過 stream 閱讀器從 txt 文件中讀取此文件,並且必須使用 stream 編寫器將其寫入不同格式的新文件。

使用 Visual Basic

Dim Start As String
Dim FileData()
FileData = myReader.ReadFiles()
Start = FileData(2)
myWriter.WriteLine("A004 " & Start)

我試過 start = Format(FileData(2), "####/##/##") 但它一直只寫 # 而不是實際值。

由於字符串是日期,因此將其轉換為 DateTime 類型會更容易。 以下是將字符串解析為 DateTime 的方法:

Dim NewDate As DateTime = DateTime.ParseExact(Start, "yyyyMMdd")

從那里,您可以根據需要格式化 DateTime。 .NET 框架在 DateTime 類型上提供了一個名為ToString()的重載方法。 該方法允許您傳入格式字符串(如果需要,還可以傳入特定於文化的選項)。 這是一個例子:

NewDate.ToString("yyyy/MM/dd")

以下是該方法在 Microsoft Learn 上的文檔鏈接: https://learn.microsoft.com/en-us/do.net/api/system.datetime.tostring?view.net-7.0

Dim Start As String
Dim FileData()
Dim NewStartDate As DateTime
Dim NewStartTime As DateTime
Dim NewFinishDate As DateTime
Dim NewFinishTime As DateTime
FileData = myReader.ReadFiles()
StartDate = FileData(2)
FinishDate = FileData (4)
FinishT = FileData(5)

NewStartDate = DateTime.ParseExact(StartDate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture)
NewStartDate = NewStartDate.ToString(dd/MM/yyyy")
NewStartTime = DateTime.ParseExact(StartDate, "hhmmss", System.Globalization.CultureInfo.CurrentCulture)
NewStartTime = NewStartTime.ToString(hh:mm:ss")
NewFinishDate = DateTime.ParseExact(StartDate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture)
NewFinishDate = NewFinishDate.ToString(dd/MM/yyyy")
NewFinishTime = DateTime.ParseExact(StartDate, "hhmmss", System.Globalization.CultureInfo.CurrentCulture)
NewFinishTime = NewFinishTime.ToString(hh:mm:ss")
myWriter.WriteLine("A004 " & NewStartDate & " " & NewFinishDate & " " & NewFinishTime)

這給出了正確的格式並且工作完美。 但是,我需要添加結束時間和結束日期,當我這樣做時它告訴我從字符串“14/12/2022”到類型“日期”的轉換無效。 我現在如何添加另一個結束日期和時間。

暫無
暫無

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

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