C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)


最近做的项目中服务器是英文的系统,系统需要通过excel的单元格导入日期,excel中的日期格式是系统默认的日期格式,如下图所示

以上日期格式,会跟着操作系统设置的日期格式相同例如我的中文系统的日期格式是如下样式的

英文系统的日期格式如下图所示

因此,在使用DateTime的ParseExact方法解析日期时间的时候要将这两种日期格式都写入

  string[] dateFormates = { "yyyy-MM-dd", "MM/yyyy/dd", "yyyyMMdd", "yyyy/MM/dd", "yyyy/M/dd", "yyyy/M/d", "M/d/yyyy h/mm/ss", "M/d/yyyy h:mm:ss tt", "M/d/yyyy" };

 "yyyy/M/d":是中文版操作系统的默认格式

"M/d/yyyy":是上图的英文操作系统的默认格式

然后使用

 var date = DateTime.ParseExact(cell.Text.ToString().Trim(), dateFormates, CultureInfo.InvariantCulture, DateTimeStyles.None);

转换日期格式,才会正确。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM