2013-07-31 51 views
1

嘗試從Excel工作表讀取日期時遇到問題。 (日期列的格式與其打開的計算機的短日期格式相同)。我將excel表格中的日期填充到成功的datagrid中,但是當我嘗試解析日期時(爲了適當地格式化),我得到一個錯誤,說明該字符串不是有效的DateTime值。電腦的短日期格式爲dd/MM/yyyy。這是我用來解析日期的代碼。以下代碼是過程失敗的示例。在Excel中使用Excel日期

Dim dateParsed AS DateTime = DateTime.Parse("14/01/2013").ToString("yyyy-MM-dd")

有一些方法以編程方式獲得系統的短日期格式並使用ParseExact代替或者有什麼建議?

+0

這些鏈接可以幫助你[1] http://msdn.microsoft.com/en-us/library/ms131044%28v=VS.90%29.aspx [2] http:// msdn。 microsoft.com/en-us/library/w2sa9yss%28v=VS.90%29.aspx –

+1

@DominicKexel我已經測試過它,並且有效的選項STRICT是OFF允許建議的配置。 – varocarbas

+0

注意:你這樣說可以「適當地格式化」。我可能會建議格式化日期的最恰當方式是使用當前用戶的文化特定格式。在用戶上強制「yyyy-MM-dd」可能不是最佳選擇。 (取決於你打算如何處理字符串) – hometoast

回答

1

你要準確分析的,使用當前文化短日期格式?

Dim dt As DateTime = DateTime.ParseExact(str, "d", CultureInfo.CurrentCulture) 

此外,如果您確實需要通過CurrentCulture查看ShortDate格式。

CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern 
-1

你可以試試這片編碼

 Dim dt As DateTime = DateTime.Parse("1/14/2013").ToString 

     Dim f As String = Format(dt, "yyyy-MM-dd") 
+0

你爲什麼要解析一個名爲「str」的DateTime對象?它已經是一個DateTime了。 – hometoast