Java

Java API

Java
Date, CalendarGregorianCalendar 1.0+
LocalDate, LocalTime, LocalDateTime, ZonedDateTime, ChronoUnit 8+
Instant 8+
DateTimeFormatter 8+

LocalDate/DateTimeFormatter

LocalDate/DateTimeFormatter Java 8 LocalDate --DateTimeFormatter

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class RunoobTest {
    public static void main(String[] args) {
        //
        LocalDate today = LocalDate.now();
        System.out.println(": " + today);
       
        //
        LocalDate nationalDay = LocalDate.of(2025, 10, 1);
        System.out.println(": " + nationalDay);
       
        //
        LocalDate tomorrow = today.plusDays(1);
        LocalDate nextMonth = today.plusMonths(1);
        LocalDate lastYear = today.minusYears(1);
       
        System.out.println(": " + tomorrow);
        System.out.println(": " + nextMonth);
        System.out.println(": " + lastYear);
    }
}

: 2025-05-01
: 2025-10-01
: 2025-05-02
: 2025-06-01
: 2024-05-01
  1. java.time (Java 8+)

  2. Date Calendar

    • LocalDate/LocalTime/LocalDateTime

    • ZonedDateTime

  3. DateTimeFormatter SimpleDateFormat

    • JDBC 4.2+ java.time

    • java.sql.Date/Timestamp

1. LocalDate ()

LocalDate today = LocalDate.now();
LocalDate date = LocalDate.of(2023, Month.JUNE, 15);
int year = date.getYear();  // 2023
Month month = date.getMonth();  // JUNE
int day = date.getDayOfMonth();  // 15
LocalDate nextWeek = today.plusWeeks(1);
boolean isLeap = date.isLeapYear();  //

2. LocalTime ()

LocalTime now = LocalTime.now();
LocalTime time = LocalTime.of(14, 30, 45);  // 14:30:45
int hour = time.getHour();  // 14
int minute = time.getMinute();  // 30
LocalTime nextHour = time.plusHours(1);

3. LocalDateTime ()

LocalDateTime ldt = LocalDateTime.now();
LocalDateTime dt = LocalDateTime.of(2023, 6, 15, 14, 30);
LocalDateTime nextMonth = dt.plusMonths(1);

4. ZonedDateTime ()

ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));
ZonedDateTime nyTime = zdt.withZoneSameInstant(ZoneId.of("America/New_York"));
ZoneId zone = zdt.getZone();  //

5. Instant ()

Instant now = Instant.now();  //
Instant later = now.plusSeconds(60);  // 60
long epochMilli = now.toEpochMilli();  //

Date

java.util Date Date Date

Date( )

1970 1 1

Date(long millisec)

Date

1 boolean after(Date date)
Datetrue,false
2 boolean before(Date date)
Datetrue,false
3 Object clone( )
4 int compareTo(Date date)
Date0
5 int compareTo(Object obj)
objDatecompareTo(Date) ClassCastException
6 boolean equals(Object date)
Datetrue,false
7 long getTime( )
1970 1 1 00:00:00 GMT Date
8 int hashCode( )
 
9 void setTime(long time)
 
19701100:00:00 GMTtime
10 String toString( )
Date String dow mon dd hh:mm:ss zzz yyyy dow (Sun, Mon, Tue, Wed, Thu, Fri, Sat)

Java Date toString()

import java.util.Date; public class DateDemo { public static void main(String[] args) { // Date Date date = new Date(); // toString() System.out.println(date.toString()); } }

:

Mon May 04 09:51:52 CDT 2013

Java

  • getTime() 197011
  • before()after() equals() 12 18 new Date(99, 2, 12).before(new Date (99, 2, 18)) true
  • compareTo() Comparable Date

1. getTime()

197011Unix

import java.util.Date;

public class DateComparison {
    public static void main(String[] args) {
        Date date1 = new Date(121, 5, 15); // 2021615
        Date date2 = new Date(121, 5, 20); // 2021620
       
        //
        if (date1.getTime() < date2.getTime()) {
            System.out.println("date1 date2 ");
        } else if (date1.getTime() > date2.getTime()) {
            System.out.println("date1 date2 ");
        } else {
            System.out.println("");
        }
    }
}

date1  date2 

2. before(), after() equals()

Date

import java.util.Date;

public class DateComparison {
    public static void main(String[] args) {
        Date date1 = new Date(121, 5, 15); // 2021615
        Date date2 = new Date(121, 5, 20); // 2021620
       
        // before()
        System.out.println("date1 date2 " + date1.before(date2));
       
        // after()
        System.out.println("date1 date2 " + date1.after(date2));
       
        // equals()
        System.out.println(" " + date1.equals(date2));
    }
}

date1  date2  true
date1  date2  false
 false

3. compareTo()

Date Comparable compareTo()

import java.util.Date;

public class DateComparison {
    public static void main(String[] args) {
        Date date1 = new Date(121, 5, 15); // 2021615
        Date date2 = new Date(121, 5, 20); // 2021620
       
        int result = date1.compareTo(date2);
       
        if (result < 0) {
            System.out.println("date1 date2 ");
        } else if (result > 0) {
            System.out.println("date1 date2 ");
        } else {
            System.out.println("");
        }
    }
}

date1  date2 

SimpleDateFormat

SimpleDateFormat SimpleDateFormat

import java.util.*; import java.text.*; public class DateDemo { public static void main(String[] args) { Date dNow = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss"); System.out.println(": " + ft.format(dNow)); } }

SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

yyyy MM dd HH:mm:ss

: MM mm HH 24 hh 12

:

: 2018-09-06 10:16:34

ASCII

G AD
y 2001
M July or 07
d 10
h  A.M./P.M. (1~12) 12
H (0~23) 22
m 30
s 55
S 234
E Tuesday
D 360
F 2 (second Wed. in July)
w 40
W 1
a A.M./P.M. PM
k (1~24) 24
K  A.M./P.M. (0~11) 10
z Eastern Standard Time
' Delimiter
" `

printf

printf %t

  • %tY2023
  • %ty23
  • %tm02
  • %tBFebruary
  • %tbFeb
  • %tAWednesday
  • %taWed
  • %td24
  • %te24 02
  • %tH2423
  • %tI1211
  • %tM45
  • %tS30
  • %tpAM PM
  • %tZGMT+08:00

%tc

27 14:21:20 CST 2007

%tF

"--"

2007-10-27

%tD

"//"

10/27/07

%tr

"HH:MM:SS PM"12

02:25:51

%tT

"HH:MM:SS"24

14:28:16

%tR

"HH:MM"24

14:28

printf Java printf

import java.util.Date;
public class DateFormatExample {
   public static void main(String[] args) {
      Date date = new Date();
      System.out.printf("%tY-%tm-%td %tH:%tM:%tS %tZ", date, date, date, date, date, date, date);
   }
}

2023-02-24 13:34:45 GMT+08:00

import java.util.Date; public class DateDemo { public static void main(String[] args) { // Date Date date = new Date(); //c System.out.printf("%tc%n",date); //f System.out.printf("--%tF%n",date); //d System.out.printf("//%tD%n",date); //r System.out.printf("HH:MM:SS PM12%tr%n",date); //t System.out.printf("HH:MM:SS24%tT%n",date); //R System.out.printf("HH:MM24%tR",date); } }

:

  10 10:43:36 CST 2012  
--2012-09-10  
//09/10/12  
HH:MM:SS PM1210:43:36   
HH:MM:SS2410:43:36  
HH:MM2410:43  

% $

import java.util.Date; public class DateDemo { public static void main(String[] args) { // Date Date date = new Date(); // toString() System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date); } }

:

Due date: February 09, 2014

<

import java.util.Date; public class DateDemo { public static void main(String[] args) { // Date Date date = new Date(); // System.out.printf("%s %tB %<te, %<tY", "Due date:", date); } }

:

Due date: February 09, 2014

import java.util.*; public class DateDemo { public static void main(String[] args) { Date date=new Date(); //b String str=String.format(Locale.US,"%tb",date); System.out.println(str); System.out.printf("%tb%n",date); //B str=String.format(Locale.US,"%tB",date); System.out.println(str); System.out.printf("%tB%n",date); //a str=String.format(Locale.US,"%ta",date); System.out.println(str); //A System.out.printf("%tA%n",date); //C System.out.printf("0%tC%n",date); //y System.out.printf("0%ty%n",date); //j System.out.printf("%tj%n",date); //m System.out.printf("0%tm%n",date); //d System.out.printf("0%td%n",date); //e System.out.printf("0%te",date); } }

May

May

Thu

020
017
124
005
004
04

SimpleDateFormat parse()SimpleDateFormat

import java.util.*; import java.text.*; public class DateDemo { public static void main(String[] args) { SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); String input = args.length == 0 ? "1818-11-11" : args[0]; System.out.print(input + " Parses as "); Date t; try { t = ft.parse(input); System.out.println(t); } catch (ParseException e) { System.out.println("Unparseable using " + ft); } } }

:

$ java DateDemo
1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
$ java DateDemo 2007-12-01
2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

Java (sleep)

sleep()CPUCPU

3

import java.util.*; public class SleepDemo { public static void main(String[] args) { try { System.out.println(new Date( ) + "\n"); Thread.sleep(1000*3); // 3 System.out.println(new Date( ) + "\n"); } catch (Exception e) { System.out.println("Got an exception!"); } } }

:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

import java.util.*; public class DiffDemo { public static void main(String[] args) { try { long start = System.currentTimeMillis( ); System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); long end = System.currentTimeMillis( ); long diff = end - start; System.out.println("Difference is : " + diff); } catch (Exception e) { System.out.println("Got an exception!"); } } }

:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

Calendar

? ? Calendar

CalendarDateDate

CalendargetInstance

Calendar

Calendar c = Calendar.getInstance();//

Calendar

CalendarCalendar

//2009612Calendar
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);

Calendar

Calendarjdk

Calendar.YEAR
Calendar.MONTH
Calendar.DATE
Calendar.DAY_OF_MONTH
Calendar.HOUR12
Calendar.HOUR_OF_DAY24
Calendar.MINUTE
Calendar.SECOND
Calendar.DAY_OF_WEEK

Calendar

Set

Calendar c1 = Calendar.getInstance();

public final void set(int year,int month,int date)
c1.set(2009, 6, 12);//Calendarc12009612

set

public void set(int field,int value)

c110

c1.set(Calendar.DATE,10);

c12008

c1.set(Calendar.YEAR,2008);

set

Add

Calendar c1 = Calendar.getInstance();

c110c110

c1.add(Calendar.DATE, 10);

c110c110

c1.add(Calendar.DATE, -10);

add

Calendar

Calendar c1 = Calendar.getInstance(); // int year = c1.get(Calendar.YEAR); // int month = c1.get(Calendar.MONTH) + 1; // int date = c1.get(Calendar.DATE); // int hour = c1.get(Calendar.HOUR_OF_DAY); // int minute = c1.get(Calendar.MINUTE); // int second = c1.get(Calendar.SECOND); // Date1213 int day = c1.get(Calendar.DAY_OF_WEEK);

GregorianCalendar

CalendarGregorianCalendarCalendar

Calendar getInstanceGregorianCalendarGregorianCalendarADBC

GregorianCalendar

1 GregorianCalendar()
GregorianCalendar
2 GregorianCalendar(int year, int month, int date)
GregorianCalendar
3 GregorianCalendar(int year, int month, int date, int hour, int minute)
GregorianCalendar
4 GregorianCalendar(int year, int month, int date, int hour, int minute, int second)
  GregorianCalendar
5 GregorianCalendar(Locale aLocale)
GregorianCalendar
6 GregorianCalendar(TimeZone zone)
GregorianCalendar
7 GregorianCalendar(TimeZone zone, Locale aLocale)
  GregorianCalendar

GregorianCalendar

1 void add(int field, int amount)
2 protected void computeFields()
UTC
3 protected void computeTime()
Calendar UTC
4 boolean equals(Object obj)
GregorianCalendar Object
5 int get(int field)
6 int getActualMaximum(int field)
7 int getActualMinimum(int field)
8 int getGreatestMinimum(int field)
  GregorianCalendar
9 Date getGregorianChange()
10 int getLeastMaximum(int field)
GregorianCalendar
11 int getMaximum(int field)
GregorianCalendar
12 Date getTime()
13 long getTimeInMillis()
14 TimeZone getTimeZone()
15 int getMinimum(int field)
16 int hashCode()
hashCode.
17 boolean isLeapYear(int year)
18 void roll(int field, boolean up)
/
19 void set(int field, int value)
20 void set(int year, int month, int date)
21 void set(int year, int month, int date, int hour, int minute)
22 void set(int year, int month, int date, int hour, int minute, int second)
23 void setGregorianChange(Date date)
GregorianCalendar
24 void setTime(Date date)
Calendar
25 void setTimeInMillis(long millis)
longCalendar
26 void setTimeZone(TimeZone value)
27 String toString()

import java.util.*; public class GregorianCalendarDemo { public static void main(String[] args) { String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; int year; // Gregorian // // GregorianCalendar gcalendar = new GregorianCalendar(); // System.out.print("Date: "); System.out.print(months[gcalendar.get(Calendar.MONTH)]); System.out.print(" " + gcalendar.get(Calendar.DATE) + " "); System.out.println(year = gcalendar.get(Calendar.YEAR)); System.out.print("Time: "); System.out.print(gcalendar.get(Calendar.HOUR) + ":"); System.out.print(gcalendar.get(Calendar.MINUTE) + ":"); System.out.println(gcalendar.get(Calendar.SECOND)); // if(gcalendar.isLeapYear(year)) { System.out.println(""); } else { System.out.println(""); } } }

Date: Apr 22 2009
Time: 11:25:27

Calendar Java