亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

精通 Java 日期时间:SimpleDateFormat、当前日期获取与日期比较

本教程涵盖 Java 日期时间处理要点:

Java Date 对象包含以下组成部分:

精通 Java 日期时间:SimpleDateFormat、当前日期获取与日期比较

计算机支持更多日期相关参数,后续章节讨论。

Java 显示当前日期

Java java.util.Date 类提供简单方式获取当前系统日期时间。最小示例:

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

输出:

Wed Nov 29 06:36:22 UTC 2017

输出用默认 toString() 格式。自定义布局需显式格式化。

SimpleDateFormat:解析与格式化日期

Java 用模式字符串将字母映射到特定日期组件。参考表:

字母日期/时间组件示例
G纪元标识AD
y年2018
M年内月份July, Jul, 07
w年内周数27
W月内周数2
D年内天数189
d月内天数10
F月内星期几2
E星期名称Tuesday, Tue
u周中天数(1=Mon…7=Sun)1
aAM/PM 标记PM
H一天小时(0‑23)0
k一天小时(1‑24)24
K上午/下午小时(0‑11)0
h上午/下午小时(1‑12)12
m小时内分钟30
s分钟内秒55
S毫秒978
z时区Pacific Standard Time; PST; GMT-08:00
Z时区偏移-0800
X时区-08, -0800, -08:00

构建特定格式字符串时随时查阅此表。

使用 SimpleDateFormat

SimpleDateFormat 类让你定义模式格式化或解析日期。例如:

提示: 大小写至关重要——M 代表月、m 代表分钟,切勿混淆。

import java.text.SimpleDateFormat; import java.util.Date; class TestDatesFormat { public static void main(String[] args) { Date now = new Date(); System.out.println(now); String pattern = "hh:mm:ss a dd-MMM-yyyy"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); System.out.println(sdf.format(now)); } }

输出:

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

比较日期

精通 Java 日期时间:SimpleDateFormat、当前日期获取与日期比较

Java 中最可靠的日期比较方法是 compareTo(),返回负值表示第一个日期更早,零表示相等,正值表示更晚。

import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; class TestDatesCompare { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); Date date1 = sdf.parse("20-08-1981"); Date date2 = sdf.parse("12-10-2012"); System.out.println("Date1 : " + sdf.format(date1)); System.out.println("Date2 : " + sdf.format(date2)); if (date1.compareTo(date2) > 0) { System.out.println("Date 1 occurs after Date 2"); } else if (date1.compareTo(date2) < 0) { System.out.println("Date 1 occurs before Date 2"); } else { System.out.println("Both dates are the same"); } } }

输出:

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

java

  1. 计算电抗直流电路中的电压与电流
  2. C++日期时间完全指南:ctime库、tm结构体与格式化输出
  3. Python 获取当前日期和时间:实用指南
  4. Python 轻松获取当前时间与时区数据
  5. Python 日期时间处理实战:time 与 calendar 模块完全指南
  6. 精通 Java 运算符:类型、语法与实战示例
  7. Java 注释:类型、用法与最佳实践
  8. 精通 Java 增强 for 循环:语法、示例与最佳实践
  9. 精通 Java 接口:概念、实现与最佳实践
  10. 掌握 Java 日期时间:构造器、方法与最佳实践
  11. Java 10 引入基于时间的发布版本控制:可预测的半年更新节奏
  12. Java 8 全新日期时间 API:线程安全、设计优雅、时区处理轻松搞定