.Net Core DateTime.Now 在Linux下的格式问题
.Net 6使用DateTime
获取系统当前时间,在Windows下输出为正常时间,但是在Linux下会获取到2023-8-16 上午10:00:00 类似的时间样式,会导致在Linux下抛出非法时间异常。
解决方案:
在Main函数中使用CultureInfo.DefaultThreadCurrentCulture 属性来获取或设置当前应用程序域中线程的默认区域性
...
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("zh-CN", true)
{
DateTimeFormat =
{
DateSeparator = "-",
TimeSeparator = ":",
LongDatePattern = "yyyy-MM-dd hh:mm:ss",
ShortDatePattern = "yyyy-MM-dd",
FullDateTimePattern = "yyyy-MM-dd HH:mm:ss",
LongTimePattern = "HH:mm:ss"
}
};
...