Java Ημερομηνία και ώρα
Ας κατανοήσουμε πρώτα τις παραμέτρους που αποτελούνται από α Ημερομηνία.
Θα περιέχει κυρίως -
- The έτος (με 2 ή 4 ψηφία)
- The μήνας (με 2 ψηφία, τα 3 πρώτα γράμματα του μήνα ή ολόκληρη τη λέξη του μήνα).
- The Ραντεβού (θα είναι η πραγματική ημερομηνία του μήνα).
- The ημέρα (η ημέρα στη δεδομένη ημερομηνία – όπως Κυρ, Δευτ., Τρίτη κ.λπ.)
Όσον αφορά τα συστήματα υπολογιστών, υπάρχουν πολλές παράμετροι που μπορούν να χρησιμοποιηθούν για να συσχετιστούν με μια ημερομηνία. Θα τα δούμε στα επόμενα μέρη αυτού του θέματος.
Εμφάνιση ημερομηνίας σε 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