此行获取您的字符串,10/13/2016 21:42
并使用提供的格式对其进行解析。这在日期字符串的格式不明确时很有用,例如06/05/2016
,即使这可能表示 June 5 th或 May 6 th,但您知道它是日/月,在我的示例中是 5 月 6日。有关更多信息,请参阅DateTime.ParseExact。
Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)
此方法的结果是DateTime,而不是字符串。
'result is 10/13/2016 09:42
所以结果是有效的——取决于你如何检查它——但是没有AM/PM
指标。它已经是一个日期时间。对 ETAtime 的进一步操作可以证明这一点。
Dim ETAtime1 As String = Convert.ToDateTime("10/13/2016 21:42").ToString("MM/dd/yyyy HH:mm")
Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)
Console.WriteLine("{0:MM/dd/yyyy HH:mm}", ETAtime)
Console.WriteLine("{0:MM/dd/yyyy hh:mm}", ETAtime)
Console.WriteLine("{0:MM/dd/yyyy hh:mm tt}", ETAtime)
输出
2016 年 10月 13 日 21:42
2016 年 10 月 13 日
09:42
2016 年 10 月 13 日
09:42 下午
您的代码确实没有问题。
我的 IDE (Visual Studio 2012) 在调试时以这种格式显示日期10/13/2016 09:42 PM
。我位于美国。显示的内容应基于您的区域设置。看到你的截图会很有趣。
