我从excel读取值时遇到问题,我的本地时间设置为MM/dd/YYYY
,而我想在excel中读取为dd/MM/YYYY
。不幸的是,应用程序正在将excel中的值转换为我当地时间,我尝试使用此
Thread.CurrentThread.CurrentCulture = new CultureInfo("pl-PL");
虽然波兰文化是dd/MM/YYYY
,但它没有帮助,我该怎么办?
要阅读excel,我使用这样的interoop:
var application = new Application();
var workbooks = application.Workbooks;
var workbook = workbooks.Open(file);
然后保存为cvs并读取csv以更快地读取它
var tempFile = file.Substring(0, file.Length - 4) + ".csv";
workbook.SaveAs(tempFile, XlFileFormat.xlCSVWindows);
var reader = new StreamReader(File.OpenRead(tempFile));
reader.ReadLine();
while (!reader.EndOfStream)
问题是,在BE语言环境中,我得到了2/25/2013,如果我设置为PL,我得到了25/2/2013,我将永远有第二个值。
答案 0 :(得分:1)
如果您以MM/dd/yyyy
的形式从Excel获取日期字符串,则可以转换为dd/MM/yyyy
。
您需要使用DateTime.ParseExact()
方法从excel解析日期字符串,如下所示:
试试这个:
String date = "02/21/2014";
DateTime dt = DateTime.ParseExact(date, "MM/dd/yyyy", CultureInfo.InvariantCulture);
date=dt.ToString("dd/MM/yyyy");