我需要将12小时格式时间(上午/下午)转换为24小时格式时间,例如使用C#从01:00 PM到13:00。我该如何转换它?
答案 0 :(得分:26)
如果您需要将字符串转换为DateTime,可以尝试
DateTime dt = DateTime.Parse("01:00 PM"); // No error checking
或(有错误检查)
DateTime dt;
bool res = DateTime.TryParse("01:00 PM", out dt);
变量dt
包含您的日期时间,因此您可以编写它
dt.ToString("HH:mm");
最后一个适用于你拥有的每个DateTime var,所以如果你还有一个DateTime,你可以用这种方式写出来。
答案 1 :(得分:18)
您需要熟悉Custom Date and Time Format Strings。
DateTime localTime = DateTime.Now;
// 24 hour format -- use 'H' or 'HH'
string timeString24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture);
答案 2 :(得分:9)
将字符串转换为DateTime,您可以尝试
DateTime timeValue = Convert.ToDateTime("01:00 PM");
Console.WriteLine(timeValue.ToString("HH:mm"));
答案 3 :(得分:6)
int hour = your hour value;
int min = your minute value;
String ampm = your am/pm value;
hour = ampm == "AM" ? hour : (hour % 12) + 12; //convert 12-hour time to 24-hour
var dateTime = new DateTime(0,0,0, hour, min, 0);
var timeString = dateTime.ToString("HH:mm");
答案 4 :(得分:5)
通过以下代码将DateTime从12小时转换为24小时。
string currentDateString = DateTime.Now.ToString("dd-MMM-yyyy h:mm tt");
DateTime currentDate = Convert.ToDateTime(currentDateString);
Console.WriteLine("String Current Date: " + currentDateString);
Console.WriteLine("Converted Date: " + currentDate.ToString("dd-MMM-yyyy HH:mm"));
每当你想要时间应该在24小时内显示使用格式“HH”
您可以参考以下链接了解更多详情: Custom Date and Time Format Strings
答案 5 :(得分:5)
您可以这样使用:
string date = "";
date = DateTime.ParseExact("01:00 PM" , "h:mm tt",
CultureInfo.InvariantCulture).ToString("HH:mm");
h:12小时
mm:分钟
tt:PM / AM
HH:24小时
答案 6 :(得分:0)
您可以使用ParseExact()方法获取DateTime对象。然后,您可以使用该DateTime对象的ToString()方法将字符串转换为您需要的内容here。
答案 7 :(得分:0)
以下是一些示例代码:
DateTime time_AMPM = DateTime.Now;
string time_24hr = time_AMPM.TimeOfDay.ToString().Substring(0, 8);
答案 8 :(得分:0)
using System;
class Solution
{
static string timeConversion(string s)
{
return DateTime.Parse(s).ToString("HH:mm");
}
static void Main(string[] args)
{
Console.WriteLine(timeConversion("01:00 PM"));
Console.Read();
}
}
答案 9 :(得分:0)
DateTime dt = DateTime.Parse("01:00 pm"); //Time in string formate
TimeSpan time = new TimeSpan();
time = dt.TimeOfDay;
Console.WriteLine(time);
结果:13:00:00
答案 10 :(得分:-1)
您可以使用Cultures来解析和格式化字符串,例如
var cultureSource = new CultureInfo("en-US", false);
var cultureDest = new CultureInfo("de-DE", false);
var source = "01:00 pm";
var dt = DateTime.Parse(source, cultureSource);
Console.WriteLine(dt.ToString("t", cultureDest));
这会打印13:00