Мне нужно преобразовать 12-часовой формат времени (am/pm) в 24-часовой формат времени, например. С 13:00 до 13:00 с использованием С#. Как его преобразовать?
Преобразование времени AM/PM в формат 24 часа?
Ответ 1
Если вам нужно преобразовать строку в DateTime, вы можете попробовать
DateTime dt = DateTime.Parse("01:00 PM"); // No error checking
или (с проверкой ошибок)
DateTime dt;
bool res = DateTime.TryParse("01:00 PM", out dt);
Переменная dt
содержит ваше datetime, поэтому вы можете написать ее
dt.ToString("HH:mm");
Последний работает для каждого используемого вами DateTime var, поэтому, если у вас все еще есть DateTime, вы можете записать его таким образом.
Ответ 2
Вам захочется ознакомиться с Пользовательскими строками формата даты и времени.
DateTime localTime = DateTime.Now;
// 24 hour format -- use 'H' or 'HH'
string timeString24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture);
Ответ 3
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
Преобразуйте строку в DateTime, вы можете попробовать
DateTime timeValue = Convert.ToDateTime("01:00 PM");
Console.WriteLine(timeValue.ToString("HH:mm"));
Ответ 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"
Дополнительную информацию можно найти по следующей ссылке: Пользовательские строки формата даты и времени
Ответ 6
Вы можете использовать метод ParseExact() для получения объекта DateTime. Затем вы можете использовать метод ToString() этого объекта DateTime, чтобы преобразовать строку в то, что вам нужно, как показано здесь.
Ответ 7
Вот пример кода:
DateTime time_AMPM = DateTime.Now;
string time_24hr = time_AMPM.TimeOfDay.ToString().Substring(0, 8);
Ответ 8
Вы можете использовать следующее:
string date = "";
date = DateTime.ParseExact( "01:00 PM", "h: mm tt", CultureInfo.InvariantCulture).ToString( "HH: mm" );
h: 12 часов мм: мин. tt: PM/AM
ЧЧ: 24 часа
Ответ 9
Вы можете использовать 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