Introductie van het datumtype - 1

"Hallo, Amigo. Ik wil je vertellen over een interessant type genaamd Date. Dit type slaat de datum en tijd op en kan ook tijdsintervallen meten."

"Klinkt interessant. Ga alsjeblieft verder."

"Elk Date-object slaat een tijd op in een nogal interessante vorm: het aantal milliseconden sinds 1 januari 1970, GMT."

"Wauw!"

"Ja. Dit getal is zo groot dat er niet genoeg ruimte voor is in een int , dus het moet worden opgeslagen in een long . Maar het is erg handig om het verschil tussen twee willekeurige datums te berekenen. Je hoeft alleen maar af te trekken om het verschil te vinden met nauwkeurigheid tot op de milliseconde. Het lost ook het probleem van de datumlijn en de zomertijd op."

"Het meest interessante is dat elk object wordt geïnitialiseerd met de huidige tijd bij het maken ervan. Om de huidige tijd te kennen, hoeft u alleen maar een Date-object te maken."

"Hoe werk je ermee?"

"Hier zijn enkele voorbeelden:"

Ontvang de huidige datum:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Bereken het verschil tussen de twee datums
public static void main(String[] args) throws Exception
{
    Date currentTime = new Date();           // Get the current date and time
    Thread.sleep(3000);                      // Wait 3 seconds (3000 milliseconds)
    Date newTime = new Date();               // Get the new current time

    long msDelay = newTime.getTime() - currentTime.getTime(); // Calculate the difference
    System.out.println("Time difference is: " + msDelay + " in ms");
}
Controleer of er een bepaalde tijd is verstreken:
public static void main(String[] args) throws Exception
{
    Date startTime = new Date();

    long endTime = startTime.getTime() + 5000;  //    +5 seconds
    Date endDate = new Date(endTime);

    Thread.sleep(3000);              // Wait 3 seconds

    Date currentTime = new Date();
    if(currentTime.after(endDate))// Check whether currentTime is after endDate
    {
        System.out.println("End time!");
    }
}
Bepaal hoeveel tijd er is verstreken sinds het begin van de dag:
public static void main(String[] args) throws Exception
{
    Date currentTime = new Date();
    int hours = currentTime.getHours();
    int mins = currentTime.getMinutes();
    int secs = currentTime.getSeconds();

    System.out.println("Time since midnight " + hours + ":" + mins + ":" + secs);
}
Bepaal hoeveel dagen er zijn verstreken sinds het begin van het jaar:
public static void main(String[] args) throws Exception
{
    Date yearStartTime = new Date();
    yearStartTime.setHours(0);
    yearStartTime.setMinutes(0);
    yearStartTime.setSeconds(0);

    yearStartTime.setDate(1);      // First day of the month
    yearStartTime.setMonth(0);     // January (the months are indexed from 0 to 11)

    Date currentTime = new Date();
    long msTimeDifference = currentTime.getTime() - yearStartTime.getTime();
    long msDay = 24 * 60 * 60 * 1000;  // The number of milliseconds in 24 hours

    int dayCount = (int) (msTimeDifference/msDay); // The number of full days
    System.out.println("Days since the start of the year: " + dayCount);
}
2
Taak
Java Syntax,  niveau 8les 4
Vergrendeld
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. So turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).

"De getTime()methode retourneert het aantal milliseconden dat is opgeslagen in een Date-object."

"De after()methode controleert of de datum waarop we de methode hebben aangeroepen na de datum komt die aan de methode is doorgegeven."

"De getHours(), getMinutes(), getSeconds()methoden retourneren respectievelijk het aantal uren, minuten en seconden voor het object waarop ze zijn aangeroepen."

"Bovendien kun je in het laatste voorbeeld zien dat je de datum/tijd die is opgeslagen in een Date- object kunt wijzigen. We krijgen de huidige tijd en datum en zetten vervolgens de uren, minuten en seconden terug op 0. We stellen ook januari in als de maand en 1 als de dag van de maand. Het object slaat dus yearStartTimede datum 1 januari van het lopende jaar en de tijd 00:00:00 op."

"Daarna krijgen we opnieuw de huidige datum ( currentTime), berekenen we het verschil tussen de twee datums in milliseconden en slaan we het op in msTimeDifference."

"Vervolgens delen we msTimeDifferencedoor het aantal milliseconden in 24 uur om het aantal volledige dagen vanaf het begin van het huidige jaar tot vandaag te krijgen."

"Wauw! Dit is zo cool!"