webentwicklung-frage-antwort-db.com.de

Wie bekomme ich nur Zeit von Datum-Uhrzeit C #

Angenommen, ich habe den Wert 22.06.2009 um 10:00:00 Uhr. Wie bekomme ich ab diesem Datum nur 10:00 Uhr?.

112
apeksha

Sie haben viele Möglichkeiten dafür:

DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");

dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock

Hilfreicher Link: DateTime.ToString () Patterns

160

Von einer DateTime können Sie .TimeOfDay verwenden - aber dies gibt Ihnen eine TimeSpan, die die Zeit bis zum Tag darstellt (10 Stunden).

61
Marc Gravell

Es gibt nur den DateTime-Typ in C #. Er besteht aus dem Datums- und dem Zeitabschnitt. Wenn Sie sich nicht für den Date-Teil von DateTime interessieren, setzen Sie ihn wie folgt auf den Standardwert:

DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)

Auf diese Weise können Sie über alle .NET-Versionen hinweg konsistent sein, auch wenn Microsoft das Basisdatum auf einen anderen Wert als 1/1/0001 ändert. 

46
panpawel

Möglicherweise möchten Sie die Methode DateTime.ToShortTimeString () betrachten.

Es gibt auch viele andere Methoden und Eigenschaften für das DateTime - Objekt, mit denen Sie Datum und Uhrzeit beliebig formatieren können. Schauen Sie sich einfach die Dokumentation an.

21
heavyd

Versuche dies:

TimeSpan TodayTime = DateTime.Now.TimeOfDay;
10

Sie können folgenden Code verwenden:

DateTime dt = new DateTime(2009, 6, 22, 10, 0, 0);  //Date 6/22/2009 10:00:00 AM
string time = dt.ToString("hh:mm tt");              //Output: 10:00 AM
time = dt.ToString("HH:mm tt");                     //Output: 10:00 AM
dt = new DateTime(2009, 6, 22, 22, 0, 0);           //Date 6/22/2009 10:00:00 PM
time = dt.ToString("hh:mm tt");                     //Output: 10:00 PM
time = dt.ToString("HH:mm tt");                     //Output: 22:00 PM
7
Chirag

Dafür gibt es verschiedene Möglichkeiten. Sie können DateTime.Now.ToLongTimeString() verwenden, die nur die Uhrzeit im String-Format zurückgibt.

6
tarakaram gopal

Du kannst einfach schreiben

string time = dateTimeObect.ToString("HH:mm");
4
Kishan Gupta

Sie können ToString("T") für längere Zeit oder ToString("t") für kurze Zeit verwenden.

3
matsmats
DateTime now = DateTime.Now;

now.ToLongDateString();    // Wednesday, January 2, 2019
now.ToLongTimeString();    // 2:33:59 PM
now.ToShortDateString();   // 1/2/2019
now.ToShortTimeString();   // 2:16 PM
now.ToString();            // 1/2/2019 2:33:59 PM
3

Das funktioniert für mich. Ich habe es entdeckt, als ich mit DateTime.Date arbeiten musste, um nur den Datumsteil zu erhalten.

var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;
3
ProfK

Sie können dies verwenden

lblTime.Text = DateTime.Now.TimeOfDay.ToString(); 

Es ist Echtzeit mit Millisekunden-Wert und es wird nur die Zeit eingestellt.

3
chrysanly

wenn Sie gridview verwenden, können Sie nur die Uhrzeit mit DataFormatString="{0:t}".__ anzeigen. Beispiel: 

    By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>

By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>
2
Bipul Roy

Wenn Sie Zeiten und nicht die Datumsangaben vergleichen möchten, können Sie einfach ein Standardvergleichsdatum haben oder mit dem Datum übereinstimmen, das Sie verwenden, wie in ...

DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);

Möglicherweise gibt es bessere Möglichkeiten dafür, aber die Datumsangaben bleiben erhalten.

1
Hugoware

In meinem Fall funktioniert das gut

MyDateTime.ToLongTimeString()
0
Leonardo Mora

Sie müssen auch DateTime Kind berücksichtigen.

public static DateTime GetTime(this DateTime d)
{
    return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}
0
user3720899