shily的博客

博客园 首页 新随笔 联系 订阅 管理

最近做的项目中服务器是英文的系统,系统需要通过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);

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

 

posted on 2018-03-04 21:37  两耳不闻窗外事、一心只做程序员  阅读(4839)  评论(0编辑  收藏  举报