C# 区域性设置,月用日还原

C# 区域性设置,月用日还原,c#,C#,我在从excel中读取值时遇到问题,我的本地时间设置为MM/dd/YYYY,而我希望以excel中的dd/MM/YYYY格式读取。不幸的是,应用程序正在将excel中的值转换为本地时间,我尝试使用这个 Thread.CurrentThread.CurrentCulture = new CultureInfo("pl-PL"); 虽然波兰文化是dd/MM/YYYY,但它没有帮助,我能做什么 要阅读excel,我使用如下互操作: var application = new Application(

我在从excel中读取值时遇到问题,我的本地时间设置为
MM/dd/YYYY
,而我希望以excel中的
dd/MM/YYYY
格式读取。不幸的是,应用程序正在将excel中的值转换为本地时间,我尝试使用这个

Thread.CurrentThread.CurrentCulture = new CultureInfo("pl-PL");
虽然波兰文化是
dd/MM/YYYY
,但它没有帮助,我能做什么

要阅读excel,我使用如下互操作:

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 locale,我得到了2013年2月25日,如果我设置为PL,我得到了2013年2月25日,我将始终有第二个值。

如果您以
MM/dd/yyyyy
的形式从Excel中以字符串形式获取日期,您可以转换为
dd/MM/yyyyy

您需要使用
DateTime.ParseExact()
方法从excel解析日期字符串,如下所示:

试试这个:

        String date = "02/21/2014";
        DateTime dt = DateTime.ParseExact(date, "MM/dd/yyyy", CultureInfo.InvariantCulture);
        date=dt.ToString("dd/MM/yyyy");

如何从Excel中检索值?您是直接与Excel交互,还是仅从CSV或XLS读取?请显示您如何读取数据的所有代码。查看导致问题的代码行将非常有用。您是在使用DateTime.Parse()函数执行此操作还是执行其他操作?在最后一行中,您不会再次将
CultureInfo.InvariantCulture
传递给
ToString
方法。您也不能“转义”斜杠
/
字符。这意味着斜杠将替换为当前
CultureInfo
的日期分隔符。这是有意的吗?