Подтвердить что ты не робот

Преобразование времени AM/PM в формат 24 часа?

Мне нужно преобразовать 12-часовой формат времени (am/pm) в 24-часовой формат времени, например. С 13:00 до 13:00 с использованием С#. Как его преобразовать?

4b9b3361

Ответ 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, вы можете записать его таким образом.

Ответ 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