Дата на Java & Време: SimpleDateFormat, текуща дата & Сравнете

Съдържание:

Anonim

В този урок ще научите -

  • Показване на текущата дата в Java
  • SimpleDateFormat: Анализиране и форматиране на дати
  • Пример за сравнение на дати

Нека първо разберем параметрите, които се състоят от Дата .

Той ще съдържа предимно -

  • В годината (в 2 или 4 цифри)
  • На месец (в или 2 цифри, първите 3 букви от месеца или цялата дума на месеца).
  • На датата (тя ще бъде действителната дата от месеца).
  • В деня (в деня на посочената дата - като Sun, Mon, Tue, и т.н.)

Що се отнася до компютърните системи, има доста параметри, които могат да се използват за свързване с дата. Ще ги видим в следващите части на тази тема.

Показва дата в Java

Сега нека видим как Java ни предоставя датата. Първо, ще видим как да получим текущата дата-

Java предоставя клас Дата под пакета java.util, Пакетът предлага няколко метода за игра с датата.

Можете да използвате обекта Date, като извикате конструктора на клас Date, както следва:

import java.util.Date;class Date_Ex1 {public static void main(String args[]) {// Instantiate a Date object by invoking its constructorDate 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 Обозначител на ерата От н.е.
у Година 2018 г.
М Месец в годината Юли или юли или 07
w Седмица в годината 27
W Седмица в месец 2
д Ден в годината 189
д Ден в месеца 10
F Ден от седмицата в месеца 2
Е. Име на деня в седмицата Вторник или вторник
u Номер на деня от седмицата (1 = понеделник,…, 7 = неделя) 1
а Маркер Am / pm PM
З. Час в деня (0-23) 0
к Час в деня (1-24) 24
К Час в сутринта / вечерта (0-11) 0
з Час в сутринта / вечерта (1-12) 12
м Минута в час 30
с Втора по минута 55
С Милисекунда 978
z Часова зона Тихоокеанско стандартно време; PST; GMT-08: 00
Z. Часова зона -0800
х Часова зона -08 или -0800 или -08: 00

Не се притеснявайте, не е нужно да помните всички тези, те могат да бъдат насочени по всяко време, когато трябва да форматирате определена дата.

Как да използвам SimpleDateFormat?

Java предоставя клас, наречен SimpleDateFormat, който ви позволява да форматирате и анализирате дати в съответствие с вашите изисквания.

Можете да използвате горните символи, за да зададете формата - Например:

1) Изискван формат на дата: 2012.10.23 20:20:45 PST

Посоченият подходящ формат за дата ще бъде гггг.MM.dd HH: mm: ss zzz

2) Изискван формат на дата: 09:30:00 AM 23-май-2012

Посоченият подходящ формат за дата ще бъде hh: mm: ss a dd-MMM-yyyy

Съвет: Внимавайте с главни букви. Ако объркате 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 objDateSystem.out.println(objDate);String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is SpecifiedSimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format objectSystem.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date}}

Изход:

Wed Nov 29 06:31:41 UTC 201706: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-1981Date2 : 12-10-2012Date 1 occurs before Date 2