我有两个日期如下,并且我的当地文化是“en-IN”
string enInDateValue = "13-12-2021 12:00:00"; // dd/mm/yyyy
string enUSDateValue = "12-13-2021 12:00:00"; // mm/dd/yyyy
如果我使用 Invariant Culture 运行以下代码,则日期将使用 enUSDate 进行解析。
DateTime.TryParse(enInDateValue, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out result)
DateTime.TryParse(enUSDateValue, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out result)
要解决以下问题是我正在使用的代码,它正在解析每种文化的日期。
public static bool DateTimeTryParse(string date, out DateTime result)
{
return (
DateTime.TryParse(date, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out result) ||
DateTime.TryParse(date, CultureInfo.CurrentCulture, DateTimeStyles.NoCurrentDateDefault, out result) ||
DateTime.TryParse(date, CultureInfo.CurrentUICulture, DateTimeStyles.NoCurrentDateDefault, out result)
);
}
如果它仅因不变文化而失败,它将转到当前并且对于 UI 文化相同
所以想问一下这样做是否合适?或者有没有其他办法?