it-swarm.com.de

So erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit in Java

Was ist der beste Weg, um das aktuelle Datum und die aktuelle Uhrzeit in Java zu erhalten?

594
user496949

Es hängt davon ab, welche Form von Datum und Uhrzeit Sie möchten:

  • Wenn Sie das Datum und die Uhrzeit als einen einzigen numerischen Wert haben möchten, gibt System.currentTimeMillis() dies als Anzahl Millisekunden nach der UNIX-Epoche (als Java long) ausgedrückt. Dieser Wert ist ein Delta aus einem UTC-Zeitpunkt und ist unabhängig von der lokalen Zeitzone ... unter der Annahme, dass die Systemuhr korrekt eingestellt wurde.

  • Wenn Sie möchten, dass Datum und Uhrzeit in einem Formular angezeigt werden, mit dem Sie auf die Komponenten (Jahr, Monat usw.) numerisch zugreifen können, haben Sie folgende Möglichkeiten:

    • new Date() gibt Ihnen ein Date-Objekt, das mit dem aktuellen Datum und der aktuellen Uhrzeit initialisiert wurde. Das Problem ist, dass die Date-API-Methoden meist fehlerhaft sind ... und nicht mehr empfohlen werden.

    • Calendar.getInstance() gibt Ihnen ein Calendar-Objekt, das mit dem aktuellen Datum und der aktuellen Uhrzeit initialisiert wurde, und verwendet dabei die Standardeinstellungen Locale und TimeZone. Bei anderen Überladungen können Sie ein bestimmtes Locale und/oder ein TimeZone verwenden. Kalender funktioniert ... aber die APIs sind immer noch umständlich.

    • new org.joda.time.DateTime() gibt Ihnen ein Joda-Zeit Objekt, das mit dem aktuellen Datum und der aktuellen Uhrzeit unter Verwendung der Standardzeitzone und der Standardzeit initialisiert wird. Es gibt viele andere Joda-Alternativen ... zu viele, um sie hier zu beschreiben. (Beachten Sie jedoch, dass einige Leute berichten, dass Joda Time Probleme mit der Leistung hat.; Zum Beispiel Jodatimes LocalDateTime ist langsam, wenn es zum ersten Mal verwendet wird .)

    • in Java 8 erhalten Sie durch Aufrufen von LocalDateTime.now() und ZonedDateTime.now() Repräsentationen1 für das aktuelle Datum/die aktuelle Uhrzeit. 

Vor Java 8 empfahlen die meisten Benutzer, die über diese Dinge Bescheid wissen, Joda-time , dass sie (bei weitem) die besten Java-APIs für die Durchführung von Zeit- und Dauerberechnungen haben. Bei Java 8 trifft dies nicht mehr zu. Wenn Sie jedoch bereits Joda-Zeit in Ihrer Codebase verwenden, gibt es keine starke2 Grund für die Migration.


1 - Beachten Sie, dass LocalDateTime keine Zeitzone enthält. Wie der Javadoc sagt: "Es kann keinen Zeitpunkt auf der Zeitleiste ohne zusätzliche Informationen wie Offset oder Zeitzone darstellen."

2 - Ihr Code wird nicht beschädigt, wenn Sie dies nicht tun, und Sie erhalten keine Warnungen zur Zurückweisung von Daten. Sicher, die Joda-Codebase wird wahrscheinlich keine Updates mehr erhalten, aber es ist unwahrscheinlich, dass sie benötigt werden. Keine Updates bedeuten Stabilität und das ist eine Sache von good. Beachten Sie auch, dass es sehr wahrscheinlich ist, dass durch jemand Probleme behoben werden, die durch Regressionen in der Java-Plattform verursacht werden.

586
Stephen C

Wenn Sie nur einen Zeitstempel im Format JJJJ.MM.DD-HH.MM.SS (sehr häufiger Fall) ausgeben müssen, können Sie Folgendes tun:

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
366

Wenn Sie das aktuelle Datum als Zeichenfolge verwenden möchten, versuchen Sie Folgendes:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));

oder

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

http://www.mkyong.com/Java/java-how-to-get-current-date-time-date-and-calender/

97
duggu

In Java 8 ist es:

LocalDateTime.now()

und falls Sie Zeitzoneninformationen benötigen:

ZonedDateTime.now()

und falls Sie ausgefallene formatierte Zeichenfolge drucken möchten:

System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))
60
Oleg Mikheev

Erstellen Sie einfach ein Date-Objekt ...

Date date = new Date();
43
Amir Afghani
    // 2015/09/27 15:07:53
    System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );

    // 15:07:53
    System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );

    // 09/28/2015
    System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));

    // 20150928_161823
    System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );

    // Mon Sep 28 16:24:28 CEST 2015
    System.out.println( Calendar.getInstance().getTime() );

    // Mon Sep 28 16:24:51 CEST 2015
    System.out.println( new Date(System.currentTimeMillis()) );

    // Mon Sep 28
    System.out.println( new Date().toString().substring(0, 10) );

    // 2015-09-28
    System.out.println( new Java.sql.Date(System.currentTimeMillis()) );

    // 14:32:26
    Date d = new Date();
    System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );

    // 2015-09-28 17:12:35.584
    System.out.println( new Timestamp(System.currentTimeMillis()) );

    // Java 8

    // 2015-09-28T16:16:23.308+02:00[Europe/Belgrade]
    System.out.println( ZonedDateTime.now() );

    // Mon, 28 Sep 2015 16:16:23 +0200
    System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );

    // 2015-09-28
    System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class

    // 16
    System.out.println( LocalTime.now().getHour() );

    // 2015-09-28T16:16:23.315
    System.out.println( LocalDateTime.now() );
39
blueberry0xff

tl; dr

Instant.now()                                         // Capture the current moment in UTC, with a resolution of nanoseconds.

… oder …

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )  // Capture the current moment as seen in the wall-clock time used by the people of a particular region (a time zone).

Java.time

Einige der Answers erwähnen, dass Java.time Klassen der moderne Ersatz für die lästigen alten älteren Datum-Uhrzeit-Klassen sind, die mit den frühesten Versionen von Java gebündelt sind. Unten finden Sie ein bisschen mehr Informationen.

enter image description here

Zeitzone

In den anderen Antworten wird nicht erläutert, wie wichtig eine Zeitzone für die Ermittlung des aktuellen Datums und der aktuellen Uhrzeit ist. Für jeden Moment kann das Datum und die Zeit je nach Zone um den Globus variieren. Zum Beispiel ist ein paar Minuten nach Mitternacht ein neuer Tag in Paris Frankreich , während es in Montréal Québec immer noch „gestern“ ist.

Instant

Ein Großteil Ihrer Geschäftslogik und des Datenspeicherns/-austauschs sollte als Best Practice in UTC erfolgen.

Um den aktuellen Moment in UTC mit einer Auflösung in Nanosekunden zu erhalten, verwenden Sie Instant = Klasse. Herkömmliche Computerhardware-Uhren sind in ihrer Genauigkeit begrenzt, so dass das aktuelle Moment in Millisekunden oder Mikrosekunden anstelle von Nanosekunden erfasst werden kann.

Instant instant = Instant.now();

ZonedDateTime

Sie können dieses Instant in anderen Zeitzonen anpassen. Wenden Sie ein ZoneId -Objekt an, um ein ZonedDateTime zu erhalten.

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );

Wir können das Instant überspringen und das aktuelle ZonedDateTime direkt abrufen.

ZonedDateTime zdt = ZonedDateTime.now( z );

Übergeben Sie immer dieses optionale Zeitzonenargument. Ohne Angabe wird die aktuelle Standardzeitzone Ihrer JVM angewendet. Die Standardeinstellung kann sich zu jeder Zeitpunkt ändern, sogar während Laufzeit. Setzen Sie Ihre App keinen externen Faktoren aus, die nicht Ihrer Kontrolle unterliegen. Geben Sie immer die gewünschte/erwartete Zeitzone an.

ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.

Sie können später ein Instant aus dem ZonedDateTime extrahieren.

Instant instant = zdt.toInstant();

Verwenden Sie immer ein Instant oder ZonedDateTime anstelle eines LocalDateTime , wenn Sie einen tatsächlichen Moment auf der Timeline haben möchten. Die Typen Local… Haben absichtlich keine Vorstellung von der Zeitzone, so dass sie nur eine ungefähre Vorstellung von einem möglichen Moment darstellen. Um einen tatsächlichen Moment zu erhalten, müssen Sie eine Zeitzone zuweisen, um die Typen Local… In ZonedDateTime umzuwandeln und dadurch aussagekräftig zu machen.

LocalDate

Die Klasse LocalDate repräsentiert einen Datumswert ohne Uhrzeit und ohne Zeitzone.

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );  // Always pass a time zone.

Streicher

Um einen String zu generieren, der den Datums-/Zeitwert darstellt, rufen Sie einfach toString in den Java.time-Klassen für die Standardformate ISO 8601 auf.

String output = myLocalDate.toString();  // 2016-09-23

… oder …

String output = zdt.toString();  // 2016-09-23T12:34:56.789+03:00[America/Montreal]

Die Klasse ZonedDateTime erweitert das Standardformat, indem sie den Namen der Zeitzone in eckigen Klammern anfügt.

Durchsuchen Sie für andere Formate Stack Overflow nach vielen Fragen und Antworten in der Klasse DateTimeFormatter .

Vermeiden Sie LocalDateTime

Entgegen dem Kommentar zur Frage von RamanSB sollten Sie nichtLocalDateTime als aktuelle Datums- und Uhrzeitklasse verwenden.

Dem LocalDateTime fehlen absichtlich jegliche Zeitzonen- oder Versatzinformationen zu UTC. Das ist also nicht angebracht, wenn Sie einen bestimmten Moment auf der Timeline verfolgen. Auf jeden Fall nicht zur Erfassung des aktuellen Moments geeignet.

Die „lokale“ Formulierung ist nicht intuitiv. Es bedeutet any Lokalität und nicht irgendeine spezifische Lokalität. Beispielsweise beginnt Weihnachten dieses Jahr am 25. Dezember um Mitternacht: 2017-12-25T00:00:00, Um als LocalDateTime dargestellt zu werden. Dies bedeutet jedoch Mitternacht an verschiedenen Orten auf der ganzen Welt zu unterschiedlichen Zeiten. Die Mitternacht ereignet sich zuerst in Kiribati , später in Neuseeland, Stunden später in Indien usw. Es vergehen mehrere Stunden, bevor Weihnachten in Frankreich beginnt, wenn die Kinder in Kanada noch auf diesen Tag warten. Jeder dieser Weihnachtsstartpunkte würde als separates ZonedDateTime dargestellt.


Von außerhalb Ihres Systems

Wenn Sie Ihrer Systemuhr nicht vertrauen können, lesen Sie Java: Aktuelles Datum und Uhrzeit vom Server abrufen, nicht von der Systemuhr und meine Antwort .

photo of a couple of external radio clock devices

Java.time.Clock

Schreiben Sie eine Unterklasse der Klasse abstract Java.time.Clock , um einen alternativen Anbieter des aktuellen Moments zu nutzen.

Sie können Ihre Clock -Implementierung als Argument an die verschiedenen Java.time -Methoden übergeben. Zum Beispiel Instant.now( clock ) .

Instant instant = Instant.now( yourClockGoesHere ) ;

Beachten Sie zu Testzwecken die alternativen Implementierungen von Clock, die statisch von Clock selbst verfügbar sind: fixed , offset, tick und mehr.


About Java.time

Das Java.time Framework ist in Java 8 und höher. Diese Klassen ersetzen das lästige alte Legacy Datum-Zeit-Klassen wie Java.util.Date , Calendar , & SimpleDateFormat .

Das Joda-Time -Projekt, das sich jetzt im Wartungsmodus befindet, rät zur Migration in die Java.time -Klassen.

Weitere Informationen finden Sie im Oracle Tutorial . Durchsuchen Sie Stack Overflow nach vielen Beispielen und Erklärungen. Spezifikation ist JSR 31 .

Sie können Java.time Objekte direkt mit Ihrer Datenbank austauschen. Verwenden Sie einen JDBC-Treiber , der JDBC 4.2 oder höher entspricht. Keine Notwendigkeit für Zeichenketten, keine Notwendigkeit für Klassen Java.sql.*.

Woher bekommen Sie die Java.time-Klassen?

Das Projekt ThreeTen-Extra erweitert Java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von Java.time. Hier finden Sie möglicherweise einige nützliche Klassen wie Interval , YearWeek , YearQuarter und mehr .

38
Basil Bourque

Benutzen:

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );

(Es funktioniert.)

18
user1719182

Es gibt viele verschiedene Methoden:

14
Greg Hewgill

Erstellen Sie ein Datumsobjekt und drucken Sie es einfach nach.

Date d = new Date(System.currentTimeMillis());
System.out.print(d);
10
Subodh

Ähnlich den obigen Lösungen. Aber ich bin immer auf der Suche nach diesem Code:

Date date=Calendar.getInstance().getTime();
System.out.println(date);
9
JeffJak

Haben Sie sich Java.util.Date angesehen? Es ist genau das, was du willst.

9
Starkey
Java.util.Date date = new Java.util.Date();

Es wird automatisch mit der Zeit gefüllt, zu der es instanziiert wurde.

8
Rudy

Erstellen Sie für Java.util.Date einfach ein neues Datum ().

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43

Verwendet für Java.util.Calendar Calendar.getInstance ()

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43

Verwendet für Java.time.LocalDateTime LocalDateTime.now ()

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now)); //2016/11/16 12:08:43

Verwendet für Java.time.LocalDate LocalDate.now ()

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate)); //2016/11/16

Referenz: https://www.mkyong.com/Java/java-how-to-get-current-date-time-date-and-calender/

7
amit pandya

1st Verstehen Sie die Java.util.Date-Klasse

1.1 So erhalten Sie das aktuelle Datum

import Java.util.Date;

class Demostration{
    public static void main(String[]args){
        Date date = new Date(); // date object
        System.out.println(date); // Try to print the date object
    }
}

1.2 Wie verwende ich die getTime () Methode?

import Java.util.Date;
public class Main {
    public static void main(String[]args){
        Date date = new Date();
        long timeInMilliSeconds = date.getTime();
        System.out.println(timeInMilliSeconds);
    }
}

Dies gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 um 00:00:00 GMT zum Zeitvergleich zurück.

1.3 Formatieren der Uhrzeit mithilfe der SimpleDateFormat-Klasse

import Java.text.DateFormat;
import Java.text.SimpleDateFormat;
import Java.util.Date;

class Demostration{
    public static void main(String[]args){
        Date date=new Date();
        DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate=dateFormat.format(date);
        System.out.println(formattedDate);
    }
}

Versuchen Sie auch andere Formatmuster wie "jjjj-MM-tt hh: mm: ss" und wählen Sie das gewünschte Muster aus. http://docs.Oracle.com/javase/7/docs/api/Java/text/SimpleDateFormat.html

2nd Verstehen Sie die Java.util.Calendar-Klasse

2.1 Verwenden der Kalenderklasse zum Abrufen des aktuellen Zeitstempels

import Java.util.Calendar;

class Demostration{
    public static void main(String[]args){
        Calendar calendar=Calendar.getInstance();
        System.out.println(calendar.getTime());
    }
}

2.2 Verwenden Sie setTime und andere Set-Methoden, um den Kalender auf ein anderes Datum einzustellen.

Quelle: http://javau91.blogspot.com/

6
u91

Ich finde dies der beste Weg:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22
6
kelevra88

Benutzen:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));

Die Anweisung print gibt die Uhrzeit aus, zu der sie aufgerufen wird, und nicht, wenn SimpleDateFormat erstellt wurde. So kann es wiederholt aufgerufen werden, ohne neue Objekte anzulegen.

4
joe pelletier

Wie bereits erwähnt, kann das grundlegende Date () das tun, was Sie benötigen, um die aktuelle Uhrzeit zu erhalten. In meiner jüngsten Erfahrung in der Arbeit mit Java-Dates gibt es eine Vielzahl von Kuriositäten mit den eingebauten Klassen (sowie die Abwertung vieler Date-Klassenmethoden). Eine Kuriosität, die mir aufgefallen ist, war, dass die Monate auf 0 Indizes basieren, was aus technischer Sicht sinnvoll ist, aber in Wirklichkeit sehr verwirrend sein kann.

Wenn Sie sich nur mit dem aktuellen Datum befassen, sollte dies ausreichen. Wenn Sie jedoch viele Manipulationen/Berechnungen mit Datumsangaben vornehmen möchten, kann es sehr nützlich sein, eine Drittanbieter-Bibliothek zu verwenden (es gibt viele, da viele Java-Entwickler mit dem Ergebnis nicht zufrieden sind die eingebaute Funktionalität).

Ich stimme der Empfehlung von Stephen C zu, da ich die Joda-Zeit als sehr nützlich für die Vereinfachung meiner Arbeit mit Datumsangaben empfunden habe. Sie ist auch sehr gut dokumentiert und es gibt viele nützliche Beispiele im gesamten Web. Ich habe sogar eine statische Wrapper-Klasse (als DateUtils) geschrieben, die ich zur Konsolidierung und Vereinfachung meiner üblichen Datumsmanipulation verwende. 

3
David Fioretti

Die neue Data-Time-API wird mit dem Beginn von Java 8 eingeführt. Dies ist fällig folgende Probleme, die in der alten Daten-Zeit-API verursacht wurden.

Schwierig mit der Zeitzone umzugehen: Sie müssen viel Code schreiben, um mit .__ umzugehen. Zeitzonen.

Nicht threadsicher: Java.util.Date ist nicht threadsicher.

Schauen Sie sich also mit Java 8 um

import Java.time.LocalDate;
import Java.time.LocalTime;
import Java.time.LocalDateTime;
import Java.time.Month;


public class DataTimeChecker {

    public static void main(String args[]) {
        DataTimeChecker dateTimeChecker = new DataTimeChecker();
        dateTimeChecker.DateTime();
    }

    public void DateTime() {
        // Get the current date and time
        LocalDateTime currentTime = LocalDateTime.now();
        System.out.println("Current DateTime: " + currentTime);

        LocalDate date1 = currentTime.toLocalDate();
        System.out.println("Date : " + date1);

        Month month = currentTime.getMonth();
        int day = currentTime.getDayOfMonth();
        int seconds = currentTime.getSecond();

        System.out.println("Month : " + month);
        System.out.println("Day : " + day);
        System.out.println("Seconds : " + seconds);

        LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018);
        System.out.println("Date : " + date2);

        //Prints 17 May 2018
        LocalDate date3 = LocalDate.of(2018, Month.MAY, 17);
        System.out.println("Date : " + date3);

        //Prints 04 hour 45 minutes
        LocalTime date4 = LocalTime.of(4, 45);
        System.out.println("Date : " + date4);

        // Convert to a String 
        LocalTime date5 = LocalTime.parse("20:15:30");
        System.out.println("Date : " + date5);
    }
}

Ausgabe der Codierung oben:

Current DateTime: 2018-05-17T04:40:34.603
Date : 2018-05-17
Month : MAY
Day : 17
Seconds : 34
Date : 2018-05-17T04:40:34.603
Date : 2018-05-17
Date : 04:45
Date : 20:15:30
3
Dulith De Costa

Schauen Sie sich die Date Klasse an. Es gibt auch die neuere Calendar -Klasse, die die bevorzugte Methode für viele Datums-/Uhrzeitoperationen ist (viele der Methoden am Date wurden nicht mehr unterstützt)

Wenn Sie nur das aktuelle Datum wünschen, erstellen Sie entweder ein neues Date-Objekt oder rufen Sie Calendar.getInstance(); auf.

3
Michael Berry
import Java.util.*;
import Java.text.*;

public class DateDemo {
   public static void main(String args[]) {
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      System.out.println("Current Date: " + ft.format(dNow));
   }
}

sie können Datum für aktuelle Daten verwenden. also mit SimpleDateFormat get format

1
Madhuka Dilhan
 System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
    //2018:02:10 - 05:04:20 PM

datum/Uhrzeit mit AM/PM

1
Shinwar ismail

Ich habe diese Methode erstellt, es funktioniert für mich ...

public String GetDay() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
}

public String GetNameOfTheDay() {
    return String.valueOf(LocalDateTime.now().getDayOfWeek());
}

public String GetMonth() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
}

public String GetNameOfTheMonth() {
    return String.valueOf(LocalDateTime.now().getMonth());
}

public String GetYear() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
}

public boolean isLeapYear(long year) {
    return Year.isLeap(year);
}

public String GetDate() {
    return GetDay() + "/" + GetMonth() + "/" + GetYear();
}

public String Get12HHour() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
}

public String Get24HHour() {
    return String.valueOf(LocalDateTime.now().getHour());
}

public String GetMinutes() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
}

public String GetSeconds() {
    return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
}

public String Get24HTime() {
    return Get24HHour() + ":" + GetMinutes();
}

public String Get24HFullTime() {
    return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}

public String Get12HTime() {
    return Get12HHour() + ":" + GetMinutes();
}

public String Get12HFullTime() {
    return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
0
PotterOleagaCR

Sie können Date object und formatieren. Es ist schwer zu formatieren und benötigt mehr Codes, zum Beispiel

Date dateInstance = new Date();
int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
int date = dateInstance.getDate();
int month = dateInstance.getMonth();
int day = dateInstance.getDay();
int hours = dateInstance.getHours();
int min = dateInstance.getMinutes();
int sec = dateInstance.getSeconds();

String dayOfWeek = "";
switch(day){
    case 0:
        dayOfWeek = "Sunday";
        break;
    case 1:
        dayOfWeek = "Monday";
        break;
    case 2:
        dayOfWeek = "Tuesday";
        break;
    case 3:
        dayOfWeek = "Wednesday";
        break;
    case 4:
        dayOfWeek = "Thursday";
        break;
    case 5:
        dayOfWeek = "Friday";
        break;
    case 6:
        dayOfWeek = "Saturday";
        break;
}
System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
System.out.println("Time: " + hours +":"+ min + ":" + sec);

ausgabe: 

Date: 2017-6-23 Sunday
Time: 14:6:20

Wie Sie sehen können, ist dies der schlechteste Weg, den Sie tun können, und laut Oracle-Dokumentation ist dies veraltet .

Oracle-Dokument:

Die Klasse Date repräsentiert einen bestimmten Zeitpunkt mit Millisekunde Präzision.

Vor JDK 1.1 hatte die Klasse Date zwei zusätzliche Funktionen. Es erlaubte die Interpretation von Datumsangaben als Jahr, Monat, Tag, Stunde, Minute, und zweite Werte. Es erlaubte auch die Formatierung und Analyse des Datums Streicher Leider war die API für diese Funktionen nicht zugänglich zur Internationalisierung. Ab JDK 1.1 sollte die Calendar-Klasse .__ sein. Wird verwendet, um zwischen Datums- und Zeitfeldern und der DateFormat-Klasse zu konvertieren sollte zum Formatieren und Analysieren von Datumszeichenfolgen verwendet werden. Die entsprechende Methoden in Date sind veraltet.

Alternativ können Sie Calendar class verwenden,

Calendar.YEAR;
//and lot more

Um die aktuelle Uhrzeit abzurufen, können Sie Folgendes verwenden:

Calendar rightNow = Calendar.getInstance();

Doc:

Wie auch andere locale-sensitive Klassen bietet Calendar eine Klassenmethode getInstance, um ein allgemein nützliches Objekt dieses Typs zu erhalten . Die getInstance-Methode des Kalenders gibt ein Calendar-Objekt zurück, dessen Kalender Felder wurden mit dem aktuellen Datum und der aktuellen Uhrzeit initialisiert

Untenstehender Code für nur Datum

Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);

Calendar-Klasse hat auch Unterklassen. GregorianCalendar ist eine von ihnen und eine konkrete Unterklasse von Calendar und stellt das Standardkalendersystem dar, das von den meisten der Welt verwendet wird.

Beispiel mit GregorianCalendar:

Calendar cal = new GregorianCalendar();
int hours = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int ap = cal.get(Calendar.AM_PM);

String amVSpm;
if(ap == 0){
    amVSpm = "AM";
}else{
    amVSpm = "PM";
}

String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
System.out.println(timer);

Sie können SimpleDateFormat verwenden, eine einfache und schnelle Möglichkeit, das Datum zu formatieren:

String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

String date = simpleDateFormat.format(new Date());
System.out.println(date);

Lesen Sie dieses Jakob Jenkov-Tutorial: Java SimpleDateFormat .

Wie bereits erwähnt, hatten wir keine einfache und beste Methode, um eingebaute Klassen oder APIs zu nutzen, wenn wir Daten aus Datumsangaben bearbeiten müssen.

Als Beispiel, Wenn wir zwischen zwei Datumsangaben unterscheiden müssen , wenn wir zwei Datumsangaben vergleichen müssen (es gibt auch eine eingebaute Methode dafür) } und viele mehr. Wir mussten Bibliotheken von Drittanbietern verwenden. Einer der guten und beliebtesten ist Joda Time.

Lesen Sie auch:

Das Beste ist jetzt (in Java 8), dass niemand Bibliotheken aus irgendwelchen Gründen herunterladen und verwenden muss. Ein einfaches Beispiel, um das aktuelle Datum und die aktuelle Uhrzeit in Java 8 abzurufen.

LocalTime localTime = LocalTime.now();
System.out.println(localTime);

//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);

Einer der guter Blogbeitrag zum Lesen von Java 8-Datum .

Denken Sie daran, mehr über Java-Datum und -Uhrzeit zu erfahren, da es viel mehr Möglichkeiten und/oder nützliche Möglichkeiten gibt, die Sie verwenden können.

EDIT:

Gemäß dem @BasilBourque-Kommentar sind die störenden alten Datum-Zeit-Klassen wie Java.util.Date, Java.util.Calendar und Java.text.SimpleTextFormat jetzt Vermächtnis , ersetzt durch die Java.time Klassen .

0
Blasanka

Ich werde diese Antwort einreichen, weil es alles ist, was ich brauche, wenn ich die gleiche Frage habe:

Date currentDate = new Date(System.currentTimeMillis());

currentDate ist jetzt Ihr aktuelles Datum in einem Java Date-Objekt.

0
ThePartyTurtle

probieren Sie einfach diesen Code:

import Java.text.DateFormat;
import Java.text.SimpleDateFormat;
import Java.util.Calendar;
import Java.util.Date;
public class CurrentTimeDateCalendar {
    public static void getCurrentTimeUsingDate() {
        Date date = new Date();
        String strDateFormat = "hh:mm:ss a";
        DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
        String formattedDate= dateFormat.format(date);
        System.out.println("Current time of the day using Date - 12 hour format: " + formattedDate);
    }
    public static void getCurrentTimeUsingCalendar() {
        Calendar cal = Calendar.getInstance();
        Date date=cal.getTime();
        DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        String formattedDate=dateFormat.format(date);
        System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate);
    }
}

welches die Beispielausgabe ist:

Aktuelle Uhrzeit unter Verwendung des Datums - 12-Stunden-Formats: 23:13:01

Aktuelle Uhrzeit im Kalender - 24-Stunden-Format: 23:13:01

weitere Informationen zu:

Aktuelles Datum und Uhrzeit in Java abrufen

0
Majid Roustaei