Java 日期和时间

首先让我们了解一下由 日期.

如何在 Java

它将主要包含 -

  • - (2 位或 4 位数字)
  • - (可以是 2 位数字、月份的前 3 个字母或月份的整个单词)。
  • - 日期 (它将是该月的实际日期)。
  • - (给定日期的星期几 – 如周日、周一、周二等)

对于计算机系统来说,有很多参数可用于与日期关联。我们将在本主题的后面部分中看到它们。

显示日期 Java

现在让我们看看如何 Java 为我们提供日期。首先,我们将了解如何获取当前日期-

Java 在 java.util 包下提供了一个 Date 类,该包提供了几种处理日期的方法。

您可以通过调用 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 月份 七月或Jul或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 太平洋标准时间

指定的适当日期格式为- yyyy.MM.dd HH:mm:ss zzz

2)日期格式要求:09:30:00 AM 23-May-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 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