无法往返日期时间格式

时间:2015-10-20 07:40:05

标签: c# .net datetime format

我使用自定义格式将DateTime转换为字符串:

var s = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss");

现在,当我试图扭转它时:

var dt = DateTime.ParseExact(s, "yyyy/MM/dd hh:mm:ss");

我得到一个关于字符串不是有效格式的例外。我甚至试图通过CultureInfo.InvariantCulture,但没有运气。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果您使用带有一个参数的ToString方法,那么它使用CurrentCulture作为格式提供者,可以更改" /"符合您文化的符号("。"例如)。 如果您可以接受InvariantCulture,请尝试使用以下代码:

var s = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss", CultureInfo.InvariantCulture);
var dt = DateTime.ParseExact(s, "yyyy/MM/dd hh:mm:ss", CultureInfo.InvariantCulture);

答案 1 :(得分:1)

我错误地忘记了ParseExact的最后一个参数,它应该是CultureInfo.InvariantCulture。然而,最终问题是没有HH而不是hh。