Java Date & Time: SimpleDateFormat, Τρέχουσα ημερομηνία & σύγκριση

Σε αυτό το σεμινάριο, θα μάθετε -

Ας κατανοήσουμε πρώτα τις παραμέτρους που αποτελούνται από α Ημερομηνία.

Πώς να χρησιμοποιήσετε την ημερομηνία στην Java

Θα primariπεριέχει -

  • Η έτος (με 2 ή 4 ψηφία)
  • Η μήνας (με 2 ψηφία, τα 3 πρώτα γράμματα του μήνα ή ολόκληρη τη λέξη του μήνα).
  • Η Ραντεβού (θα είναι η πραγματική ημερομηνία του μήνα).
  • Η ημέρα (η ημέρα στη δεδομένη ημερομηνία – όπως Κυρ, Δευτ., Τρίτη κ.λπ.)

Όσον αφορά τα συστήματα υπολογιστών, υπάρχουν πολλές παράμετροι που μπορούν να χρησιμοποιηθούν για να συσχετιστούν με μια ημερομηνία. Θα τους δούμε στο later μέρη αυτού του θέματος.

Εμφάνιση ημερομηνίας σε Java

Τώρα ας δούμε πώς η Java μας παρέχει την Ημερομηνία. Αρχικά, θα δούμε πώς θα λάβουμε την τρέχουσα ημερομηνία-

Η Java παρέχει μια κλάση Date κάτω από το πακέτο java.util, Το πακέτο παρέχει πολλές μεθόδους για να παίξετε με την ημερομηνία.

Μπορείτε να χρησιμοποιήσετε το αντικείμενο Date καλώντας τον κατασκευαστή της κλάσης Date ως εξής:

import java.util.Date;
class Date_Ex1 {
 public static void main(String args[]) {
  // Instantiate a Date object by invoking its constructor
  Date objDate = new Date();
  // Display the Date & Time using toString()
  System.out.println(objDate.toString());
 }
}

Παραγωγή:

Wed Nov 29 06:36:22 UTC 2017

Στο παραπάνω παράδειγμα η ημερομηνία που εμφανίζεται στην προεπιλεγμένη μορφή, Αν θέλουμε να εμφανίσουμε την ημερομηνία και την ώρα σε άλλη μορφή, κατανοήστε πρώτα τη Μορφοποίηση ημερομηνίας.

SimpleDateFormat: Ανάλυση και Μορφοποίηση Ημερομηνιών

Πρέπει όλοι να έχετε μάθει τα αλφάβητα στο νηπιαγωγείο σας….

Ας μάθουμε τώρα τα ABC της μορφής ημερομηνίας.

Επιστολή Στοιχείο ημερομηνίας ή ώρας Παραδείγματα
G Προσδιορισμός εποχής AD
y Έτος 2018
M Μήνας σε χρόνο Ιουλίου ή Ιουλίου ή 07
w Εβδομάδα με το χρόνο 27
W Εβδομάδα σε μήνα 2
D Ημέρα το χρόνο 189
d Ημέρα σε μήνα 10
F Ημέρα της εβδομάδας στον μήνα 2
E Όνομα ημέρας στην εβδομάδα Τρίτη ή Τρίτη
u Αριθμός ημέρας της εβδομάδας (1 = Monday, …, 7 = Κυριακή) 1
a Δείκτης π.μ./μ.μ PM
H Ώρα την ημέρα (0-23) 0
k Ώρα την ημέρα (1-24) 24
K Ώρα σε π.μ./μ.μ. (0-11) 0
h Ώρα σε π.μ./μ.μ. (1-12) 12
m Λεπτό σε ώρα 30
s Δεύτερος στο λεπτό 55
S Μιλιδευτερόλεπτο 978
z ζώνη ώρας Τυπική ώρα Ειρηνικού; PST; GMT-08:00
Z ζώνη ώρας -0800
X ζώνη ώρας -08 ή -0800 ή -08:00

Μην ανησυχείτε, δεν χρειάζεται να τα θυμάστε όλα αυτά, μπορούν να παραπεμφθούν όποτε θέλετε να διαμορφώσετε μια συγκεκριμένη ημερομηνία.

Πώς να χρησιμοποιήσετε το SimpleDateFormat;

Η Java παρέχει μια κλάση που ονομάζεται SimpleDateFormat που σας επιτρέπει να μορφοποιείτε και να αναλύετε ημερομηνίες σύμφωνα με τις απαιτήσεις σας.

Μπορείτε να χρησιμοποιήσετε τους παραπάνω χαρακτήρες για να καθορίσετε τη μορφή-

Για παράδειγμα:

1) Απαιτείται μορφή ημερομηνίας: 2012.10.23 20:20:45 PST

Η κατάλληλη μορφή ημερομηνίας που καθορίζεται θα είναι- εεεε.ΜΜ.ηη ΩΩ:λλ:δδ zzz

2) Απαιτείται μορφή ημερομηνίας:09:30:00 AM 23-May-2012

Η κατάλληλη μορφή ημερομηνίας που καθορίζεται θα είναι-ωω:μμ:δδ μια ηη-ΜΜΜ-εεεε

Συμβουλή: Να είστε προσεκτικοί με τα κεφαλαία γράμματα. Εάν μπερδέψετε το M με το m, θα έχετε ανεπιθύμητα αποτελέσματα!

Ας το μάθουμε αυτό με ένα παράδειγμα κώδικα.

import java.text.SimpleDateFormat;
import java.util.Date;
class TestDates_Format {
 public static void main(String args[]) {
  Date objDate = new Date(); // Current System Date and time is assigned to objDate
  System.out.println(objDate);
  String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
  SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
  System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
 }
}

Παραγωγή:

Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017

Παράδειγμα σύγκρισης ημερομηνιών

Παράδειγμα σύγκρισης ημερομηνιών

Η πιο χρήσιμη μέθοδος σύγκρισης ημερομηνιών είναι η χρήση της μεθόδου – compareTo()

Ας ρίξουμε μια ματιά στο παρακάτω απόσπασμα κώδικα-

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

class TestDates_Compare {
 public static void main(String args[]) throws ParseException {

  SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");
  Date dt_1 = objSDF.parse("20-08-1981");
  Date dt_2 = objSDF.parse("12-10-2012");

  System.out.println("Date1 : " + objSDF.format(dt_1));
  System.out.println("Date2 : " + objSDF.format(dt_2));

  if (dt_1.compareTo(dt_2) > 0) {
   System.out.println("Date 1 occurs after Date 2");
  } // compareTo method returns the value greater than 0 if this Date is after the Date argument.
  else if (dt_1.compareTo(dt_2) < 0) {
   System.out.println("Date 1 occurs before Date 2");
  } // compareTo method returns the value less than 0 if this Date is before the Date argument;
  else if (dt_1.compareTo(dt_2) == 0) {
   System.out.println("Both are same dates");
  } // compareTo method returns the value 0 if the argument Date is equal to the second Date;
  else {
   System.out.println("You seem to be a time traveller !!");
  }
 }
}

Παραγωγή:

Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2