这是两个测试,第一个使用:
DateTime.TryParse(dateToParse, out date)
var dateToParse = "2012-09-17"; var startNew = Stopwatch.StartNew(); for (int i = 0; i < 4059; i++) { DateTime date; if (!DateTime.TryParse(dateToParse, out date)) continue; } Console.WriteLine(startNew.GetTimeString());
-> 输出:19.1 毫秒闪电般的速度
第二个使用:
DateTime.TryParse(dateToParse, new CultureInfo("en-US"), DateTimeStyles.AdjustToUniversal, out date)
var dateToParse = "2012-09-17"; var startNew = Stopwatch.StartNew(); for (int i = 0; i < 4059; i++) { DateTime date; if (!DateTime.TryParse(dateToParse, new CultureInfo("en-US"), DateTimeStyles.AdjustToUniversal, out date)) continue; } Console.WriteLine(startNew.GetTimeString());
-> 输出:11.6 秒真的很慢!!!
两个问题。
1 - 为什么在美国文化中转换如此缓慢
2 - 我可以使用什么替代解决方案在日期时间中使用 US-Culture 转换字符串