Как вы получаете текущее время дня?

269

Как вы получаете текущее время (не дата и время)?

Пример: 17:42:12

Яхья
источник

Ответы:

391

DateTime.Now.TimeOfDayдает его вам как TimeSpan(с полуночи).

DateTime.Now.ToString("h:mm:ss tt")дает вам это как строку .

Ссылка DateTime: https://msdn.microsoft.com/en-us/library/system.datetime

Марк Брекетт
источник
25
DateTime.Now.ToShortTimeString () делает то же самое, что и второе предложение.
Кайл Трауберман
4
ну, почти то же самое, он возвращает строку, но пропускает часть времени в секундах.
Кайл Трауберман
12
.ToString («ЧЧ: мм: сс тт») выдаст вам 17:42:12, а .ToString («ч: мм: сс тт») даст вам 17:42:12.
Меренцо
6
@ Кайл - не совсем точно. ToShortTimeString возвращает время в выбранном пользователем коротком формате времени, как указано в настройках региона Windows.
BlackWasp
46

Попробуй это:

DateTime.Now.ToString("HH:mm:ss tt")

Для других форматов, вы можете проверить этот сайт: C # DateTime Format

Musikero31
источник
43

Другой вариант с использованием String.Format ()

string.Format("{0:HH:mm:ss tt}", DateTime.Now)
Крис Фулстоу
источник
25

Текущее время с обозначением AM / PM:

DateTime.Now.ToString("hh:mm:ss tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("hh:mm:ss.fff tt", System.Globalization.DateTimeFormatInfo.InvariantInfo)

Текущее время с использованием нотации 0-23 часа:

DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("HH:mm:ss.fff", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Оппозиционный
источник
3
@ Анар, я расстегнул твои -1. Вопрос «Как мне узнать время суток» , на который отвечают все ответы. Ваше отрицательное голосование вызвано тем, что вы прочитали вопрос как «Как форматировать часы как 5:00 PM» , в то время как OP только (и явно) упомянул этот конкретный формат даты в качестве примера. Вы даже опровергли ответ @ Musikero31 , в котором упоминается страница, где каждый может найти строку формата, которую он ищет.
CodeCaster
После прочтения вопроса, я думаю, вы не ошиблись. Но я не ошибаюсь, потому что, если это общий вопрос, как вы предлагаете, то большинство ответчиков неправильно поняли вопрос, поскольку их ответы не общие, а конкретные. В общем, я думаю, что вопрос мог бы быть намного яснее. Кстати, что значит «я расстегнул твои -1»?
Анар Халилов
@Anar как форматирование DateTime.Nowв виде строки требует в формате, они должны были положить в чем - то . Это не делает плохие ответы, но если вы думаете, что должен быть другой формат, не стесняйтесь редактировать их. Я имел в виду, что я проголосовал за отрицательные ответы.
CodeCaster
1
Если бы не было недоразумений, они бы поставили все версии, а не то, что приходит в голову. Мы все знаем, что SO очень щедр к людям, которые стараются ответить. Но да, давайте не будем сильно отклоняться от темы. Все, что я могу сказать, это то, что я рассмотрю все свои -1 и приму решение снова.
Анар Халилов
24
DateTime.Now.TimeOfDay

или

DateTime.Now.ToShortTimeString()
benPearce
источник
15

Вот так:

 DateTime time = DateTime.Now;
 Console.WriteLine(time.ToString("h:mm:ss tt"));
praguan
источник
2
tВремени должна быть заглавной. Исправлено для вашего.
Программист
12

Это будет лучше, попробуйте этот

    DateTime.Now.ToShortTimeString();

Для этого вам не нужно указывать формат времени.

Санджай
источник
11
DateTime.Now.ToString("yyyy-MM-dd h:mm:ss tt");

просто попробуйте это использовать в полной мере для вашей потребности

Gupta
источник
9

Datetime.TimeOfDayвозвращает TimeSpanи может быть то, что вы ищете.

Штефан Шульце
источник
8

Получить текущую дату и время, а затем просто использовать временную часть. Посмотрите на возможности форматирования строки даты и времени в документах MSDN .

Грег Д
источник
5

Это может быть возможным решением:

DateTime now = DateTime.Now;
string time = now.ToString("T");
Ханнан Хоссейн
источник
3

Чтобы рассчитать текущую дату и время:

DateTime theDate = DateTime.UtcNow;

string custom = theDate.ToString("d");

MessageBox.Show(custom);
садхана
источник
3
var CurDate= DateTime.Now;
CurDate.Hour;
CurDate.Minute;
CurDate.Millisecond
Сарат Чандра
источник
2

Это покажет вам только текущее время в 24-часовом формате:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now.ToLongTimeString().ToString());
        Console.WriteLine(DateTime.Now.ToShortTimeString().ToString());
        Console.ReadLine();
    }
}

С уважением
К

ХО
источник
2

очень просто DateTime.Now.ToString("hh:mm:ss tt")

Ранджит Сингх
источник
2
MyEmail.Body = string.Format("The validation is done at {0:HH:mm:ss} Hrs.",DateTime.Now);

Может использовать {0:HH:mm:ss}, {0:HH:mm:ss.fff}, {0:DD/mm/yyy HH:mm:ss}и т.д. ...

Дэвид Кастро
источник
1

Я тоже экспериментирую с этим и считаю эти страницы полезными. Сначала основной класс ... https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx

Теперь некоторые форматы спецификаторов для метода ToString ... https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(v=vs.110).aspx

Пример:

using System;

namespace JD
{
    class Program
    {
        public static DateTime get_UTCNow()
        {
            DateTime UTCNow = DateTime.UtcNow;
            int year = UTCNow.Year;
            int month = UTCNow.Month;
            int day = UTCNow.Day;
            int hour = UTCNow.Hour;
            int min = UTCNow.Minute;
            int sec = UTCNow.Second;
            DateTime datetime = new DateTime(year, month, day, hour, min, sec);
            return datetime;
        }

        static void Main(string[] args)
        {
            DateTime datetime = get_UTCNow();            

            string time_UTC = datetime.TimeOfDay.ToString();
            Console.WriteLine(time_UTC);

            Console.ReadLine();

        }
    }
}

Я добавил этот метод TimeOfDay, чтобы показать, что вы получаете значение по умолчанию, равное 24 часам, как указано «время с полуночи».

Вы можете использовать мой метод geter (); :-D

Дуглас Г. Аллен
источник
1

Используйте код ниже

DateTime.Now.ToString("h:mm:ss tt")
Биджиш Рагхаван
источник
Чем это отличается от ответа с наибольшим количеством голосов?
Крэй
-6

Попробуй это. Это работает для меня в веб-приложении 3tier Architecture.

"'" + DateTime.Now.ToString() + "'"

Пожалуйста, запомните одинарные кавычки во вкладке Query.

Например:

string Command = @"Insert Into CONFIG_USERS(smallint_empID,smallint_userID,str_username,str_pwd,str_secquestion,str_secanswer,tinyint_roleID,str_phone,str_email,Dt_createdOn,Dt_modifiedOn) values ("
 + u.Employees + ","
 + u.UserID + ",'"
 + u.Username + "','"
 + u.GetPassword() + "','"
 + u.SecQ + "','"
 + u.SecA + "',"
 + u.RoleID + ",'"
 + u.Phone + "','"
 + u.Email + "','"
 + DateTime.Now.ToString() + "','"
 + DateTime.Now.ToString() + "')";

DateTimeВставки в конце строки.

Альберт
источник