Java >> Java-zelfstudie >  >> Tag >> java.util

java.util.date naar java.sql.date in Java

In dit artikel zullen we bespreken hoe we java.util.Date . kunnen converteren tot java.sql.Date op twee manieren - getTime() en valueOf() .

De java.util.Date vertelt het huidige moment met de exacte milliseconden sinds 1 januari 1970 00:00:00 GMT. java.sql.Date vertelt alleen de datum in het formaat van SQL waarin de JDBC kan begrijpen. SQL-datum bevat alleen jaren, maanden en dagen, er is geen tijd en tijdzone aanwezig.

Converteer java.util.Date tot java.sql.Date getTime() gebruiken

In het eerste voorbeeld gebruiken we de getTime() methode van de java.util.Date klas. De getTime() methode retourneert, wanneer aangeroepen, het aantal milliseconden dat is verstreken sinds 1 januari 1970 00:00:00 GMT. We maken eerst een object van java.util.Date en bel de getTime() methode die de milliseconden retourneert als een long typ.

Vervolgens maken we een object van java.sql.Date die milliseconden als argument in de constructor accepteert. We slagen voor timeInMilliSeconds en we krijgen date1 van de java.sql.Date typ.

import java.util.Date;

public class UtilDateToSqlDate {
    public static void main(String[] args) {
        Date date = new Date();

        long timeInMilliSeconds = date.getTime();
        java.sql.Date date1 = new java.sql.Date(timeInMilliSeconds);

        System.out.println("SQL Date: " + date1);
    }
}

Uitgang:

SQL Date: 2021-01-22

Converteer java.util.Date tot java.sql.Date Met behulp van SimpleDateFormat en valueOf()

Een andere methode om java.util.Date . te converteren tot java.sql.Date is valueOf() . Het is een statische methode die aanwezig is in de java.sql.Date klas. valueOf() neemt een argument van het stringtype. Dit is waarom we java.util.Date . converteren te rijgen.

Als de java.util.Date retourneert datum met tijd, we formatteren de datum die is geaccepteerd door java.sql.Date dat is yyyy-MM-dd . Om de datum op te maken, maken we een object van SimpleDateFormat en geef het formaat door aan zijn constructor. We noemen simpleDateFormat.format(date) en geef datum door als argument om de datum op te maken.

Ten slotte krijgen we de datum als een string die we kunnen doorgeven aan valueOf() als een argument en krijg het resultaat als java.sql.Date .

import java.text.SimpleDateFormat;
import java.util.Date;

public class UtilDateToSqlDate {
    public static void main(String[] args) throws IllegalArgumentException {
        Date date = new Date();

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

        String formattedDate = simpleDateFormat.format(date);

        java.sql.Date date1 = java.sql.Date.valueOf(formattedDate);

        System.out.println("SQL Date: " + date1);
    }
}

Uitgang:

SQL Date: 2021-01-22

Java-tag