![](/img/trans.png)
[英]What format does HttpBrowserCapabilities.MinorVersion return?
[英]What date format does excel return?
我正在建立一個全球數據庫,並且正在從excel文件中讀取日期。
我在解析DateTime時使用了本地計算機的文化,並期望它們能夠匹配。
d = DateTime.Parse(date, CultureInfo.CurrentCulture);
excel中的日期不應該具有CurrentCulture
格式嗎?
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ src +
";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"");
OleDbDataAdapter da = new OleDbDataAdapter("select * from [data$]", con);
DataSet ds = new DataSet();
da.Fill(ds);
dt = ds.Tables[0];
rows = dt.Rows.Count;
columns = dt.Columns.Count;
string date = dt.Rows[start].ItemArray[column].ToString();
是的,這正是我想- Excel的是給你一個適當的日期,然后將其轉換為字符串,然后再嘗試做相反的事情。 相反,您想直接從數據表中獲取日期:
DateTime date = (DateTime)dt.Rows[start][column];
請注意,對於null
值,類型將不是DateTime
,而是DBNull
,因此您首先要檢查一下:
DateTime? date = dt.Rows[start][column] is DBNull
? default(DateTime?)
: (DateTime)dt.Rows[start][column];
如果字符串格式適合CurrentCulture
的標准日期時間模式之一,則DateTime.Parse
成功解析您的字符串。
您可以在CurrentCulture
找到所有標准日期時間模式,例如;
var array = CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns();
foreach (var item in array)
{
Console.WriteLine(item);
}
如果您的CurrentCulture
和巴黎的文化(我假設他們使用的是fr-FR
文化)都具有與字符串格式匹配的標准格式,那么您的解析將成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.