当时间在下午时,DateTime.ParseExact会为sv-SE文化抛出FormatException

时间:2012-07-27 15:55:43

标签: c# datetime localization

对于使用瑞典语(DateTime.ParseExact)文化的sv-SE方法,我观察到一些奇怪的行为。

我的计算机文化是en-US,但业务逻辑需要sv-SE文化。所以我先把它设置在当前的线程上。

Thread.CurrentThread.CurrentUICulture = new CultureInfo("sv-SE");

然后我执行以下操作来解析DateTime值。我想在这里解析的日期时间是 2012年5月27日上午11:57

DateTime.ParseExact("270512T11:57", "ddMMyyThh:mm", Thread.CurrentThread.CurrentUICulture);

这很好用。

但是当我从晚上开始时,我得到了例外。当我尝试解析2012年5月27日 11:57 PM 的日期时间戳时。

DateTime.ParseExact("270512T23:57", "ddMMyyThh:mm", Thread.CurrentThread.CurrentUICulture);

上面的行为FormatException提供了消息字符串未被识别为有效的DateTime。

这里真的有什么不对?

1 个答案:

答案 0 :(得分:6)

仅限12小时制。如果您将格式字符串更改为" ddMMyyTHH:mm"它应该工作。