簡體   English   中英

vb.net 將字符串轉換為日期格式

[英]vb.net converting string to date format

我正在嘗試在 vb 上將字符串轉換為日期,但由於某種原因,我收到以下錯誤消息。

System.FormatException: 'String was not recognized as a valid DateTime.'

我正在從 winform 上的日期控制中獲取日期

dim selectedDate as string = dateControl1.text
dim selectedDt as Date = Date.Parse(selectedDate)

但是如果我在代碼中輸入相同的值而不是從 dateControl 中獲取,就可以了

dim selectedDate as string = "19/01/2021"
dim selectedDt as Date = Date.Parse(selectedDate)

所以我嘗試查看 dateControl1 的值和鍵入代碼時是否有任何不同,因為 dateControl1.text 應該返回相同的字符串值,所以我嘗試這樣做

dim selectedDate as string = "19/01/2021"
if selectedDate = dateControl1.text then
  debug.print ("same")
else
  debug.print ("different")
end if

當我運行它時,調試打印“相同”

如果我這樣做

dim selectedDate as string = "19/01/2021"
if selectedDate = dateControl1.text then
  debug.print ("same")
else
  debug.print ("different")
end if

dim selectedDt as Date = Date.Parse(dateControl1.text)

即使調試說“相同”,我也會收到相同的錯誤

所以我真的很困惑,為什么當我從 dateControl1.text 獲取值時 date.parse 顯示錯誤並且它是完全相同的字符串

我錯過了什么嗎?

謝謝您的幫助。

問候

  • 哈里斯——

您可以嘗試這種方式,它應該可以工作:

dim selectedDt as Date = DateTime.ParseExact(dateControl1.text, "dd/MM/yyyy", CultureInfo.InvariantCulture)

為了更安全,您必須先仔細檢查文本框的值。 try

DateTime.ParseExact 方法

日期控制是什么控制? 如果它是 DateTimePicker,那么您可以使用 .Value 屬性獲取日期,而無需進行任何轉換。

dim selectedDt as Date = dateControl1.Value

暫無
暫無

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

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