2013-02-01 5 views
1

Я пытаюсь получить текущее время:Cant получить час и минуту дня

date = "(" + DateTime.Today.Year.ToString() + "-" + 
DateTime.Today.Month.ToString() + "-" + DateTime.Today.Day.ToString() + " " + 
"(" + DateTime.Today.Hour.ToString() + ":" + DateTime.Today.Minute.ToString() 
+")" + ")"; 

Это должно получить дату, как:

(2013-2-1 (13:01))

Но это дает мне:

(2013-2-1 (0: 0))

Как я могу это исправить?

+1

Использование 'DateTime.Now',' DateTime.Today' дает только дату, о которой я думаю. – antonijn

+0

Ничего себе! 3 ответа в течение 26 секунд друг от друга - 4, если вы считаете комментарий выше. :-) –

+2

Вместо этого используйте 'date = DateTime.Now.ToString (@" (yyyy \ -MM \ -dd (HH \: mm)) ")'). – GSerg

ответ

6

Вы используете DateTime.Today, который документирован как:

Объект, который установлен на сегодняшнюю дату, с компонентом времени, установленным на 00:00:00.

Так что да, если вы найдете Hour и Minute компоненты, они будут быть 0 ...

Если вы хотите, текущее время суток, используйте DateTime.Now вместо этого. Обратите внимание, что оба Today и Now используют системно-местный часовой пояс - вы должны быть уверены, что это действительно то, что вы хотите использовать. (Вероятно, это нормально для локального клиентского приложения, но не для веб-приложения.)

1

Использование DateTime.Now вместо DateTime.Today

DateTime.Today свое время часть сет 00:00:00
DateTime.Now получает текущую дату и время для локального компьютера

1

У вас есть DateTime.Today, который убирает элемент времени.

Используйте вместо этого DateTime.Now, который дает вам полную дату и время.

1

Используйте NodaTime, если это веб-приложение. Используйте DateTime.Now для местных дат и времени.

Так оно и должно быть:

date = "(" + DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + " " + "(" + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() +")" + ")"; 
+0

Вызов 'DateTime.Now' несколько раз никогда не бывает хорошим. И Noda Time потрясающе, но это не ограничивается веб-приложениями. Этот код в любом случае не демонстрирует Noda Time, поэтому я не уверен, к чему вы клоните. –

4

Вместо того, чтобы все конкатенации вы используете в данный момент, используйте ToString объекта DateTime в() метод ...

string date = DateTime.Now.ToString("(yyyy-M-d (hh:mm))"); 

Кроме того, как указывалось обратите внимание на использование DateTime.Now вместо DateTime.Today

1

Пожалуйста, попробуйте ввести более короткий код текущей даты и времени в соответствии с вашим форматом

var date = DateTime.Now.ToString("(yyyy-MM-dd(HH:mm))");

1

Используйте следующий код вместо конкатенации.Его гораздо более оптимизированная, чем конкатенационная работа, которую вы сделали.

string date = DateTime.Now.ToString("(yyyy-M-d (hh:mm))"); 

Также DateTime.Today не имеет элемента времени.

0

DateTime.Today вернет u 2013-2-1 00:00:00 .. Он дает время уверенно, но отметка времени установлена ​​на 00:00:00.. это причина, по которой u r не получает исключение n, все еще получая 00:00:00. Используйте текущую временную метку DateTime.Now.

Смежные вопросы