我有一个string
,其中包含: 2011年12月14日上午9:45 (注意“AM”未大写“)
现在我想用它创建一个datetime
变量。
我试着看this,但这与我想要的相反。 我也尝试了this,但失败了。 到目前为止我尝试过的是:
Dim dateNow As DateTime
Dim out As String = "14 Dec 2011 9:45 am"
dateNow = DateTime.ParseExact(out, "d MMM yyyy HH:mm tt", Nothing)
但遗憾的是它不起作用。任何的想法?谢谢。 VB.net或C#代码就可以了..
答案 0 :(得分:7)
您可能需要单H
而不是HH
,因为小时是datetime
字符串中的单个数字。如果您有09
小时,则HH
应该有小时。使用AM和PM的小小时为12小时,大写H
为 24小时时间格式,如1:28 PM
为13:28 PM
dateNow = DateTime.ParseExact(out, "d MMM yyyy h:mm tt", Nothing)
使用下面显示的小时的不同选项进行说明。
您可以详细了解DataTime
here的自定义格式。
答案 1 :(得分:2)
尝试这样做14 Dec 2011 09:45
在小时9附近加0。
Dim dateNow As DateTime
Dim out As String = "14 Dec 2011 09:45 am"
dateNow = DateTime.ParseExact(out, "dd MMM yyyy HH:mm tt", Nothing)
答案 2 :(得分:0)
您还可以使用允许格式的
Dim dateNow As DateTime
Dim out As String = "14 Dec 2011 12:45 am"
Dim allowedFormats() As String = {"d MMM yyyy h:mm tt", "dd MMM yyyy h:mm tt", "d MMM yyyy hh:mm tt", "dd MMM yyyy hh:mm tt"}
dateNow = DateTime.ParseExact(out, allowedFormats, Nothing, Globalization.DateTimeStyles.None)