Конвертировать время AM / PM в 24-часовой формат? - PullRequest
24 голосов
/ 01 декабря 2011

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

Ответы [ 9 ]

27 голосов
/ 01 декабря 2011

Если вам нужно преобразовать строку в 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, которые у вас есть, поэтому, если у вас все еще есть DateTime, вы можете записать его таким образом.

18 голосов
/ 01 декабря 2011

Возможно, вы захотите ознакомиться с пользовательскими строками формата даты и времени .

DateTime localTime = DateTime.Now;

// 24 hour format -- use 'H' or 'HH'
string timeString24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture);
9 голосов
/ 28 марта 2016

Преобразование строки в DateTime, вы можете попробовать

    DateTime timeValue = Convert.ToDateTime("01:00 PM");
    Console.WriteLine(timeValue.ToString("HH:mm"));
6 голосов
/ 01 декабря 2011
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");
5 голосов
/ 22 августа 2017

Вы можете использовать так:

string date = "";

date = DateTime.ParseExact("01:00 PM" , "h:mm tt", 
CultureInfo.InvariantCulture).ToString("HH:mm");

ч: 12 часов

мм: мин.

тт: PM / AM

ЧЧ: 24 часа

5 голосов
/ 01 декабря 2011

Выполните следующий код, чтобы преобразовать 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 часах, используйте формат «ЧЧ»

Вы можетедля получения более подробной информации см. следующую ссылку: Пользовательские строки формата даты и времени

0 голосов
/ 11 марта 2014

Вот пример кода:

DateTime time_AMPM = DateTime.Now; string time_24hr = time_AMPM.TimeOfDay.ToString().Substring(0, 8);

0 голосов
/ 01 декабря 2011

Вы можете использовать Культуры для анализа и форматирования вашей строки, например,

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

0 голосов
/ 01 декабря 2011

Вы можете использовать метод ParseExact () для получения объекта DateTime.Затем вы можете использовать метод ToString () этого объекта DateTime, чтобы преобразовать строку в то, что вам нужно, как показано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...