-2

在 C# 中,我有一个非军事格式/12 小时的字符串,例如下午 1:50。我想把它转换成 13:50。如何在 C# 或 SQL 中实现这一点?我想为这个问题编写一个程序,但我想我可以在 C# 中找到一个函数。

sql 1:50 pm , 8:46 pm 中的简单 Varchar 列。

4

4 回答 4

4

在 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).

于 2012-12-14T08:31:21.180 回答
2

不确定,但试试这样

DateTime dt;
bool val= DateTime.TryParse("01:00 PM", out dt);
if(val)
dt.ToString("HH:mm");

如果这样做比尝试@Botz3000 回答中给出的文化选项更有效

于 2012-12-14T08:26:53.353 回答
0

使用 SQL SERVER 2008,您可以尝试类似

SELECT CAST('1:50 pm' AS TIME)
于 2012-12-14T08:27:42.010 回答
0

如果你只是在谈论你已经拥有的日期的表示,你可以在里面使用不同的可用DateTime格式C#欺骗它。

于 2012-12-14T08:27:44.577 回答