C# 导入文件日期格式(dd/MM/yyyy)

时间:2023-03-08 23:00:59
C# 导入文件日期格式(dd/MM/yyyy)
最近项目导入数据日期变成了这样
这是因为转换成了美国时间
美国时间格式:MM/dd/yyyy
英国时间格式:dd/MM/yyyy
C# 导入文件日期格式(dd/MM/yyyy)
C# 导入文件日期格式(dd/MM/yyyy)
避免导入出现这个问题的话就需要将excel文档单元格样式设置一下
C# 导入文件日期格式(dd/MM/yyyy)C# 导入文件日期格式(dd/MM/yyyy)
 C# 导入文件日期格式(dd/MM/yyyy)C# 导入文件日期格式(dd/MM/yyyy)
下面是将美国时间转换本地时间的代码
用数组的话是因为格式跟字符串必须完全正确,所以把所有有可能出现的格式都写上  我这里简单的写了几个匹配我业务的格式
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)
{
}
更多时间转换问题可以看微软的文档