Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# 将具有datetime的字符串转换为datetime_C# - Fatal编程技术网

C# 将具有datetime的字符串转换为datetime

C# 将具有datetime的字符串转换为datetime,c#,C#,我想将日期和时间的字符串转换为日期时间结构,但出现以下错误: 字符串未被识别为有效的日期时间 我正在读这篇文章,但我解不出这段代码。我犯了什么错 C语言中的Convert.ToDateTime和DateTime.ParseExact()之间有什么区别 我犯了什么错 错误在于提供的参数Convert.ToDateTime()格式错误。 请尝试根据您的系统日期时间格式提供“DD/MM/YYYY HH:MM:SS”。否则,您需要使用指定格式的tryparseexact 我犯了什么错 错误在于提供的参数

我想将日期和时间的字符串转换为日期时间结构,但出现以下错误:

字符串未被识别为有效的日期时间

我正在读这篇文章,但我解不出这段代码。我犯了什么错

C语言中的
Convert.ToDateTime
DateTime.ParseExact()
之间有什么区别

我犯了什么错

错误在于提供的参数Convert.ToDateTime()格式错误。 请尝试根据您的系统日期时间格式提供“DD/MM/YYYY HH:MM:SS”。否则,您需要使用指定格式的tryparseexact

我犯了什么错

错误在于提供的参数Convert.ToDateTime()格式错误。
请尝试根据系统日期时间格式提供“DD/MM/YYYY HH:MM:SS”。否则,您需要使用TryParseeXact并根据所有注释指定格式,下面是代码的外观

DateTime dt = DateTime.ParseExact("05/15/2018 11:54:18 AM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
string date = dt.ToString("HH:mm");

根据所有注释,下面是代码的外观

DateTime dt = DateTime.ParseExact("05/15/2018 11:54:18 AM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
string date = dt.ToString("HH:mm");


我建议使用
DateTime.ParseExact
DateTime.TryParseExact
,指定输入的确切格式。@DaisyShipton关于解析的说法,但请注意变量名与您的意图不符,您正在执行
。ToString(“HH:mm”)
,即分和秒,但是您正在命名变量
date
,这会导致以后的灾难,因为您很快就会忘记您的代码并没有完成它似乎正在做的事情。您应该努力编写准确表示其所持有值的内容和意图的专有名称。始终使用
DateTime.TryParse()
DateTime.TryParseExact()
,尽管这种格式在
TryParse()
可能足够常见的情况下非常常见,但我能够在没有错误的情况下运行您的代码段,您能否提供有关您正在使用的环境类型的更多详细信息(例如:.net framework版本、操作系统等)。
TryParseExact
是确保,但可能发生的情况是,您当前的区域性设置预期的是日/月,而不是月/日。我建议使用
DateTime.ParseExact
DateTime.TryParseExact
,指定输入的确切格式。@DaisyShipton所说的解析,但请注意,变量名与您的意图不符,您正在执行
.ToString(“HH:mm”)
,即分和秒,但您正在命名变量
日期,这会导致以后的灾难,因为您很快就会忘记您的代码并没有执行它似乎正在执行的操作。您应该努力编写准确表示其所持有值的内容和意图的专有名称。始终使用
DateTime.TryParse()
DateTime.TryParseExact()
,尽管这种格式在
TryParse()
可能足够常见的情况下非常常见,但我能够在没有错误的情况下运行您的代码段,您能否提供有关您正在使用的环境类型的更多详细信息(例如:.net framework版本、操作系统等)
TryParseExact
是确定的方法,但可能发生的情况是您当前的区域性设置预期的是日/月而不是月/日格式有什么问题?这对我来说很好,因为它在示例中(我在
en-US
文化中)好的。提供24小时格式的时间。你仍然得到异常吗?我没有得到异常。你有例外吗?你的建议对你有用吗?好吧。我发现了一些奇怪的事情。我改变了我的系统时区和日期格式,代码也起作用了。怎么可能呢?问题中的代码适用于预期MM/dd的区域性,但如果区域性预期dd/MM(因为没有15个月),代码将失败。可能就是这样?格式有什么问题?这对我来说很好,因为它在示例中(我在
en-US
文化中)好的。提供24小时格式的时间。你仍然得到异常吗?我没有得到异常。你有例外吗?你的建议对你有用吗?好吧。我发现了一些奇怪的事情。我改变了我的系统时区和日期格式,代码也起作用了。怎么可能呢?问题中的代码适用于预期MM/dd的区域性,但如果区域性预期dd/MM(因为没有15个月),代码将失败。可能是这样吧?