Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用往返日期时间格式_C#_.net_Datetime_Format - Fatal编程技术网

C# 无法使用往返日期时间格式

C# 无法使用往返日期时间格式,c#,.net,datetime,format,C#,.net,Datetime,Format,我使用自定义格式将日期时间转换为字符串: var s = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"); 现在,当我尝试反转它时: var dt = DateTime.ParseExact(s, "yyyy/MM/dd hh:mm:ss"); 我得到一个关于字符串格式无效的异常。我甚至试着通过CultureInfo.InvariantCulture,但运气不好。 有什么想法吗?如果您使用带有一个参数的ToString方法,那么它将使用Current

我使用自定义格式将日期时间转换为字符串:

var s = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss");
现在,当我尝试反转它时:

var dt = DateTime.ParseExact(s, "yyyy/MM/dd hh:mm:ss");
我得到一个关于字符串格式无效的异常。我甚至试着通过CultureInfo.InvariantCulture,但运气不好。
有什么想法吗?

如果您使用带有一个参数的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);

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

无法使用不变的区域性重现错误…我也无法重现此错误。如果您用正确的编程语言标记了问题,也会很有帮助,因为.NET不是编程语言。由于DateTime.ParseExact没有包含两个字符串参数的重写,因此您似乎没有显示原始代码。一个问题是,您使用的小时说明符hh没有AM/PM指示符。尝试改用HH,或者添加一个AM/PM指示符。或者换一种方式:使用“/”而不是普通的/,以便始终使用斜线,以便yyyy“/”MM“/”dd HH:MM:ss