在C#中,我有一个非军事格式的字符串/ 12小时,如下午1:50。我想把它转换成13:50。如何在C#或SQL中实现这一目标?我想为这个问题编写一个程序,但我想我可以在C#中找到一个函数。
下载1:50的简单Varchar列。 ,晚上8:46。
答案 0 :(得分:4)
在C#中,您可以将DateTime.ParseExact
与格式字符串一起使用:
DateTime.ParseExact("1:50 PM", "h:mm tt", CultureInfo.InvariantCulture).ToString("HH:mm");
默认ToString()
将为您提供本地表示(也可能是AM / PM),因此您需要使用显式格式字符串"HH:mm"
将其转换为24小时格式。请注意,在内部,DateTime
对象不关心AM / PM,这仅在转换为字符串时才起作用,因此在调试器中DateTime
对象可能仍显示为"1:50 PM"
(取决于您的语言环境)。
答案 1 :(得分:2)
不确定,但尝试这样
DateTime dt;
bool val= DateTime.TryParse("01:00 PM", out dt);
if(val)
dt.ToString("HH:mm");
如果这完成了,请尝试使用@ Botz3000
回答的文化选项答案 2 :(得分:0)
使用SQL SERVER 2008,您可以尝试类似
的内容SELECT CAST('1:50 pm' AS TIME)
答案 3 :(得分:0)
如果您只讨论已有日期的 rapresentation ,则可以使用C#
内的不同DateTime Formats来欺骗它。