Jak uzyskać aktualną porę dnia?

269

Jak uzyskać bieżącą godzinę (nie datę i godzinę)?

Przykład: 17:42:12

Yahia
źródło

Odpowiedzi:

391

DateTime.Now.TimeOfDaydaje ci to jako TimeSpan(od północy).

DateTime.Now.ToString("h:mm:ss tt")daje ci to jako ciąg .

Data i godzina odniesienia: https://msdn.microsoft.com/en-us/library/system.datetime

Mark Brackett
źródło
25
DateTime.Now.ToShortTimeString () robi to samo co druga sugestia.
Kyle Trauberman
4
cóż, prawie tak samo, zwraca ciąg, ale brakuje części sekundy.
Kyle Trauberman
12
.ToString („GG: mm: ss tt”) da ci 17:42:12, a .ToString („h: mm: ss tt”) da ci 17:42:12.
Merenzo
6
@Kyle - niezupełnie dokładne. ToShortTimeString zwraca czas w wybranym przez użytkownika formacie krótkiego czasu, określonym w ustawieniach regionu systemu Windows.
BlackWasp,
46

Spróbuj tego:

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

W przypadku innych formatów możesz sprawdzić tę stronę: C # Format godziny i godziny

Musikero31
źródło
43

Inna opcja wykorzystująca String.Format ()

string.Format("{0:HH:mm:ss tt}", DateTime.Now)
Chris Fulstow
źródło
25

Aktualny czas z oznaczeniem 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)

Aktualny czas z wykorzystaniem notacji 0-23 godziny:

DateTime.Now.ToString("HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
DateTime.Now.ToString("HH:mm:ss.fff", System.Globalization.DateTimeFormatInfo.InvariantInfo)
Opozycyjny
źródło
3
@Anar, rozwiązałem twoje -1. Pytanie brzmi „Jak uzyskać porę dnia” , na które wszystkie odpowiedzi odpowiadają. Twoje głosowanie w dół jest spowodowane tym, że czytasz pytanie jako „Jak sformatować godziny jak 5:00 PM , podczas gdy tylko OP (i wyraźnie) podało ten konkretny format daty jako przykład. Nawet przegłosowałeś odpowiedź @ Musikero31 , podczas gdy wspomniano o stronie, na której każdy może wyszukać szukany ciąg formatu.
CodeCaster,
Po ponownym przeczytaniu pytania myślę, że się nie mylisz. Ale też się nie mylę, ponieważ jeśli jest to pytanie ogólne, jak proponujesz, wówczas większość osób udzielających odpowiedzi źle zrozumiała pytanie, ponieważ ich odpowiedzi nie są ogólne, ale szczegółowe. Podsumowując, myślę, że pytanie mogło być znacznie jaśniejsze. Nawiasem mówiąc, co oznacza „I unded your -1's”?
anar khalilov
@Anar jak formatowanie DateTime.Nowjako ciąg wymaga się formatu, musieli umieścić w czymś . Nie oznacza to, że są to złe odpowiedzi, ale jeśli uważasz, że powinien istnieć inny format, możesz je edytować. Miałem na myśli, że głosowałem za odrzuconymi odpowiedziami.
CodeCaster,
1
Miał nie być żadnych misundestandings musieliby umieścić wszystkie wersje nie coś , że nastąpi wcześniej na umyśle. Wszyscy wiemy, że SO jest bardzo hojny dla ludzi, którzy starają się odpowiedzieć. Ale tak, nie odbiegajmy zbytnio od tematu. Mogę tylko powiedzieć, że przejrzę wszystkie moje -1 i podejmę decyzję ponownie.
anar khalilov
24
DateTime.Now.TimeOfDay

lub

DateTime.Now.ToShortTimeString()
benPearce
źródło
15

No to ruszamy:

 DateTime time = DateTime.Now;
 Console.WriteLine(time.ToString("h:mm:ss tt"));
praguan
źródło
2
Termin tpowinien być pisany wielkimi literami. Naprawiono to dla twojego.
programista
12

Będzie lepiej, spróbuj tego

    DateTime.Now.ToShortTimeString();

W tym celu nie trzeba określać formatu czasu.

Sanjay
źródło
11
DateTime.Now.ToString("yyyy-MM-dd h:mm:ss tt");

po prostu spróbuj Wykorzystaj w pełni do swoich potrzeb

Gupta
źródło
9

Datetime.TimeOfDayzwraca a TimeSpani może być tym, czego szukasz.

Stefan Schultze
źródło
8

Uzyskaj bieżącą datę i godzinę, a następnie użyj jej części czasu. Spójrz na możliwości formatowania ciągu daty i godziny w dokumentach MSDN .

Greg D.
źródło
5

To może być możliwe rozwiązanie:

DateTime now = DateTime.Now;
string time = now.ToString("T");
Hannan Hossain
źródło
3

Aby obliczyć bieżącą datę i godzinę:

DateTime theDate = DateTime.UtcNow;

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

MessageBox.Show(custom);
sadhana
źródło
3
var CurDate= DateTime.Now;
CurDate.Hour;
CurDate.Minute;
CurDate.Millisecond
Sarat Chandra
źródło
2

To pokaże tylko aktualny czas, w formacie 24-godzinnym:

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

Pozdrawiam
K.

Khb
źródło
2

bardzo prosty DateTime.Now.ToString("hh:mm:ss tt")

Ranjit Singh
źródło
2
MyEmail.Body = string.Format("The validation is done at {0:HH:mm:ss} Hrs.",DateTime.Now);

Można użyć {0:HH:mm:ss}, {0:HH:mm:ss.fff}, {0:DD/mm/yyy HH:mm:ss}, itd ...

David Castro
źródło
1

Eksperymentuję również z tym i te strony też są pomocne. Najpierw główna klasa ... https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx

Teraz niektóre formaty specyfikatorów dla metody ToString ... https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(v=vs.110).aspx

Przykład:

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();

        }
    }
}

Rzuciłem tam metodę TimeOfDay tylko po to, aby pokazać, że otrzymujesz domyślny czas 24-godzinny, jak podano „czas od północy”

Możesz użyć mojej metody geter (); :-RE

Douglas G. Allen
źródło
1

Użyj poniższego kodu

DateTime.Now.ToString("h:mm:ss tt")
Bijeesh Raghavan
źródło
Czym różni się to od najlepiej głosowanej odpowiedzi?
Cray
-6

Spróbuj tego. Działa dla mnie w aplikacji sieci Web architektury 3tier.

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

Proszę pamiętać o pojedynczych cytatach we wstawionym zapytaniu.

Na przykład:

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() + "')";

DateTimeWstawiania na końcu linii.

Albert
źródło