C# 导入文件日期格式(dd/MM/yyyy)
最近项目导入数据日期变成了这样
这是因为转换成了美国时间
美国时间格式:MM/dd/yyyy
英国时间格式:dd/MM/yyyy
![](https://images2015.cnblogs.com/blog/964348/201611/964348-20161108155756499-1085406888.png)
避免导入出现这个问题的话就需要将excel文档单元格样式设置一下
![](https://images2015.cnblogs.com/blog/964348/201611/964348-20161108155932342-609075300.png)
![](https://images2015.cnblogs.com/blog/964348/201611/964348-20161108155944014-281684121.png)
下面是将美国时间转换本地时间的代码
用数组的话是因为格式跟字符串必须完全正确,所以把所有有可能出现的格式都写上 我这里简单的写了几个匹配我业务的格式
string[] format = { "d/M/yyyy", "d/MM/y", "d/M/y H:m", "d/M/yyyy H:m" };
方式一
var dt = DateTime.ParseExact("14/9/2010 21:41", format, System.Globalization.CultureInfo.GetCultureInfo("en-US"), System.Globalization.DateTimeStyles.AssumeLocal);
方式二
TimeSpan serverOffset = TimeZoneInfo.Local.GetUtcOffset(DateTimeOffset.Now);
try
{
DateTimeOffset clientTime = DateTimeOffset.ParseExact("14/9/2010 21:41", format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal);
DateTimeOffset serverTime = clientTime.ToOffset(serverOffset);
DateTime date=serverTime.DateTime;
}
catch (Exception ex)
{
}
更多时间转换问题可以看微软的文档