📌  相关文章
📜  c sharp 将字符串时间转换为 24 小时时间 - C# (1)

📅  最后修改于: 2023-12-03 15:13:46.195000             🧑  作者: Mango

C# - 将字符串时间转换为 24 小时时间

在 C# 中,我们可以使用 DateTime.ParseExact 方法将给定格式的字符串时间转换为 24 小时时间。

string timeString = "12:30 PM";
DateTime datetime = DateTime.ParseExact(timeString, "h:mm tt", CultureInfo.InvariantCulture);
string twentyFourHourTime = datetime.ToString("HH:mm");

上述示例中,我们首先定义一个字符串表示时间,然后使用 DateTime.ParseExact 方法将其转换为 DateTime 对象。在 ParseExact 方法中,我们需要指定输入字符串的格式。在上述示例中,我们将 "h:mm tt" 作为格式字符串传递给方法,以表示输入字符串中的小时和分钟,后跟 AM 或 PM。

接下来,我们将 DateTime 对象转换为 24 小时格式的时间字符串。我们只需调用 ToString 方法并传入 "HH:mm" 作为格式字符串即可。此格式字符串中的大写字母 H 表示小时(00 到 23),而小写字母 mm 表示分钟。

如果输入字符串无法解析成 DateTime 对象,ParseExact 方法会抛出异常。要避免这种情况,我们应该使用 TryParseExact 方法,它会在失败时返回一个 bool 值并且不会抛出异常。

string timeString = "12:30 PM";
DateTime datetime;
if(DateTime.TryParseExact(timeString, "h:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out datetime))
{
    string twentyFourHourTime = datetime.ToString("HH:mm");
    Console.WriteLine(twentyFourHourTime);
}
else
{
    Console.WriteLine("Invalid time format");
}

此外,我们还可以使用 TimeSpan.ParseExact 方法将字符串时间转换为 TimeSpan 对象。

string timeString = "12:30 PM";
TimeSpan timespan = TimeSpan.ParseExact(timeString, "h:mm tt", CultureInfo.InvariantCulture);
string twentyFourHourTime = timespan.ToString("hh:mm");

在上述示例中,我们先将字符串时间解析成 TimeSpan 对象。然后,我们将 TimeSpan 对象转换为 24 小时格式的时间字符串。 要将 TimeSpan 对象转换为字符串,我们只需调用 ToString 方法并传入 "hh:mm" 作为格式字符串,以将小时格式化为两位数字。

以上是将字符串时间转换为 24 小时时间的 C# 示例。在应用程序中,我们应该根据实际需求选择适合我们的转换方式。