在 C# 中,我有一个非军事格式/12 小时的字符串,例如下午 1:50。我想把它转换成 13:50。如何在 C# 或 SQL 中实现这一点?我想为这个问题编写一个程序,但我想我可以在 C# 中找到一个函数。
sql 1:50 pm , 8:46 pm 中的简单 Varchar 列。
在 C# 中,您可以使用DateTime.ParseExact
格式字符串:
DateTime.ParseExact("1:50 PM", "h:mm tt", CultureInfo.InvariantCulture).ToString("HH:mm");
The default ToString()
will give you your local representation (which might be AM/PM, too), so you need to use the explicit format string "HH:mm"
to convert it to 24-hour format. Note that internally, the DateTime
object doesn't care about AM/PM, this only comes into play when converting to a string, so in your debugger DateTime
objects might still display as "1:50 PM"
(depending on your locale).
不确定,但试试这样
DateTime dt;
bool val= DateTime.TryParse("01:00 PM", out dt);
if(val)
dt.ToString("HH:mm");
如果这样做比尝试@Botz3000 回答中给出的文化选项更有效
使用 SQL SERVER 2008,您可以尝试类似
SELECT CAST('1:50 pm' AS TIME)
如果你只是在谈论你已经拥有的日期的表示,你可以在里面使用不同的可用DateTime格式来C#
欺骗它。