簡體   English   中英

excel返回什么日期格式?

[英]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.

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