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

С#: Как получить текущее время в строке?

Как я могу получить текущее время AM/AM в строку? А может быть, дата в числовой форме (01/02/09) в другую?

4b9b3361

Ответ 1

Я просто хотел бы указать что-то в этих ответах. В строке формата даты/времени '/' будет заменен на любой разделитель дат пользователя, а ':' будет заменен любым временным разделителем времени. То есть, если я определил свой разделитель даты как '.' (в апплете панели управления "Язык и язык", "intl.cpl" ), а мой разделитель времени - "?" (просто притворись, что я такой сумасшедший), затем

DateTime.Now.ToString("MM/dd/yyyy h:mm tt")

вернет

01.05.2009 6?01 PM

В большинстве случаев это то, что вы хотите, потому что вы хотите соблюдать пользовательские настройки. Если, однако, вам требуется, формат будет чем-то конкретным (скажем, если он будет разбираться с кем-то другим по кабелю), вам нужно избежать этих специальных символов:

DateTime.Now.ToString("MM\\/dd\\/yyyy h\\:mm tt")

или

DateTime.Now.ToString(@"MM\/dd\/yyyy h\:mm tt")

который теперь вернет

01/05/2009 6:01 PM

ИЗМЕНИТЬ

И снова, если вы действительно хотите соблюдать пользовательские настройки, вы должны использовать одну из стандартных строк формата даты/времени, чтобы вы уважали не только пользовательские варианты разделителей, но также общий формат даты и/или времени.

DateTime.Now.ToShortDateString()
DateTime.Now.ToString("d")

Оба возвратили бы "1/5/2009", используя стандартные опции США или "05/01/2009", используя стандартные варианты Великобритании, например.

DateTime.Now.ToLongDateString()
DateTime.Now.ToString("D")

Оба вернутся "в понедельник, 5 января 2009 года" в США, или "05 января 2009 года" в Великобритании.

DateTime.Now.ToShortTimeString()
DateTime.Now.ToString("t");

"6:01 PM" в США, "18:01" в Великобритании.

DateTime.Now.ToLongTimeString()
DateTime.Now.ToString("T");

"6:01:04 PM" в США, "18:01:04" в Великобритании.

DateTime.Now.ToString()
DateTime.Now.ToString("G");

"1/5/2009 6:01:04 PM" в США, "05/01/2009 18:01:04" в Великобритании.

Доступны многие другие варианты. См. Docs для стандартных строк формата даты и времени и пользовательские строки формата даты и времени.

Ответ 2

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

string time = DateTime.Now.ToString("hh:mm:ss"); // includes leading zeros
string date = DateTime.Now.ToString("dd/MM/yy"); // includes leading zeros

или некоторые ярлыки, если формат работает для вас

string time = DateTime.Now.ToShortTimeString();
string date = DateTime.Now.ToShortDateString();

Либо должны работать.

Ответ 4

Будьте внимательны при обращении к DateTime.Now дважды, так как это возможно для звонков в полночь, и вы получите нелепые результаты в редких случаях и останетесь царапать голову.

Чтобы быть в безопасности, вы должны сначала назначить DateTime.Now локальной переменной, если вы собираетесь использовать ее более одного раза:

var now = DateTime.Now;
var time = now.ToString("hh:mm:ss tt");
var date = now.ToString("MM/dd/yy");

Обратите внимание, что использование нижнего регистра "hh" показывает часы с 00-11 даже днем, а "tt" показывает AM/PM, как заданный вопрос. Если вы хотите 24-часовое время 00-23, используйте "HH".

Ответ 5

Способ получения системы Дата и время в одной строке

public static string GetTimeDate()
{
    string DateTime = System.DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");   
    return DateTime;
} 

sample OUTPUT :-16-03-2015 07:45:15