不得不吐槽一下Java的日期处理。太不爽了。
基本概念
UTC:世界标准时间。
UT:UTC在科学上的简称。
GMT:格林威治时间。
UTC,UT,GMT 其实是同一个概念。
一. Date (日期类)
Date类中许多方法都已经过时了。只有少数方法还能使用。
二. DataFormat与SimpleDateFormat (日期格式类)
Java的日期格式化处理类位于java.text包中。
1. DataFormat
DataFormat是一个抽象类。
2. SimpleDateFormat
SimpleDateFormat类继承自DataFormat类。该类用于处理日期格式化。
SimpleDateFormat实例表示一种“日期格式”。
其构造方法:
SimpleDateFormat() SimpleDateFormat(String pattern) SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) SimpleDateFormat(String pattern, Locale locale) |
例:创建“2012年12月12日” 的日期格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
3. 常用方法
(1) 将日期格式化为字符串
format方法
该方法用于将Date对象转为当前格式的字符串。该方法在DataFormat类与SimpleDataFormat类中均有定义。
例:
Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); String datestr = sdf.format(date); System.out.println(datestr);
(2) 将字符串解析为日期
parse方法
从给定字符串的开始解析文本,以生成一个日期。
例:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); Date date = sdf.parse("2012年12月12日"); System.out.println(date);
三. Calendar(日历类)
Calendar是抽象类。
Calendar类有许多实现的子类。常用的子类如GregorianCalendar。
GregorianCalendar:格林威治格式的日历,该日历可以用于表示各个时区的日历。
1. 得到Calendar实例
Calender类提供了一个静态方法getInstance,以获得此类型的一个通用的对象。
static Calendar getInstance() static Calendar getInstance(Locale aLocale) static Calendar getInstance(TimeZone zone) static Calendar getInstance(TimeZone zone, Locale aLocale) |
该方法用于得到当前时刻的Calendar实例。 可以通过Locale,TimeZone参数而获得某个时区的此刻的Calendar实例
|
例:
Calendar calendar = Calendar.getInstance();
或者可以使用Calendar的子类实现得到一个Calendar实例。
例:
Calendar calendar = new GregorianCalendar();
2. Calender的set和get
(1) set方法
void set(int field, int value)
将给定的日历字段设置为给定值。
void set(int year, int month, int date)
设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
void set(int year, int month, int date, int hourOfDay, int minute)
设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。
void set(int year, int month, int date, int hourOfDay, int minute, int second)
设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
(2) get方法
int get(int field)
返回给定日历字段的值。
(3) set/get方法中的field的意义:
field都是Calendar类中定义的静态变量。
Calendar静态变量 |
意义 | Calendar静态变量 | 意义 |
YEAR MONTH DATE HOUR MINUTE SECOND MILLISECOND WEEK_OF_MONTH WEEK_OF_YEAR |
年 月 日 小时 分钟 秒 毫秒 某月的周 某年的周 |
DAY_OF_MONTH DAY_OF_WEEK DAY_OF_WEEK_IN_MONTH DAY_OF_YEAR
HOUR_OF_DAY ERA ZONE_OFFSET DST_OFFSET |
|
3. Calender类与Date类
(1) Calender实例取得Date对象
Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
例:对Calendar实例指定日期
Date date=calendar.getTime();
(2) Calendar实例设置指定的Date对象
void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间。
例:设置指定的date 。
calendar.setTime(date);
4. 时间计算
Calender对象的方法 | 方法意义 |
void add(int field,int amount) void roll(int field,boolean up) void roll(int field,int amount) |
根据日历的规则,为给定的日历字段添加或减去指定的时间量。 在给定的时间字段上添加或减去单个时间单元,不更改更大的字段。 向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。 |
四. java.sql.Date、java.sql.Time、java.sql.Timestamp (数据库日期类)
java.sql.Date,java.sql.Time,java.sql.Timestamp 都继承于java.util.Date 。
java.sql.Date用于数据库中的日期处理,该类只表示了java.util.Date的日期部分。
java.sql.Time用于数据库中的时间处理,该类只表示了java.util.Date的时间部分。
java.sql.Timestamp类表示数据库中时间戳的数据,该类的实例包含日期也包含时间。
说明:
java.sql.Date、java.sql.Time、java.sql.Timestamp都是java.util.Date的子类。所以,所以对java.util.Date类的处理方法,这三个类的实例都可以使用。
五. TimeZone(时区类)
TimeZone类用于表示时区。
1. 取得一个时区实例
static TimeZone getTimeZone(String ID)
ID,表示地区的ID。
例:获取日本的日历对象。日本的ID为“Japan” 。
TimeZone tz = TimeZone.getTimeZone("Japan"); Calendar jpcalendar = new GregorianCalender(tz);
2. 获取已定义的ID
static String[] getAvailableIDs()
获取受支持的所有可用 ID。
static String[] getAvailableIDs(int rawOffset)
根据给定的时区偏移量(以毫秒为单位)获取可用的 ID。
例:获取所有已定义的ID
for(String str : TimeZone.getAvailableIDs){ System.out.println(str); }
相关推荐
### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...
java日期处理
java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...
基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。
### Java日期处理方法 在Java开发中,对日期与时间的操作是极其常见且重要的一个环节。无论是处理用户的出生年月日、注册日期还是订单的创建时间等,都需要使用到Java提供的日期类进行处理。本文将深入探讨Java中的...
这篇博客"常用代码:java日期处理"很可能包含了关于如何在Java中有效地处理日期的实用示例和方法。这里我们将深入探讨Java日期处理的核心概念、API和最佳实践。 1. **Java日期API的发展历程** - Java 1.0引入了`...
DateHandler.java日期处理类Java文件下载,有些功能很不错哦,比如计算是否是季度末、计算从现在开始几天后的时间、得到当前时间,用于文件名,使用yyyyMMddHHmmss格式、比较日期,与现在-N天的日期对比、比较日期,...
自己整理的Java日期处理类 。包含获取两个之间段之间的天数、月初日期,月末日期、一个时间段之间的所有的日期,月份 一周的第一天,最后一天、 当前是周几等。仅供参考
在Java中,日期处理是一项常见的任务,涉及到多个类和方法。本篇文章主要总结了Java中关于日期处理的基础知识,包括`java.util.Calendar`,`java.util.GregorianCalendar`以及`java.util.Date`这三个核心类。 首先...
java 日期处理工具类
以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以获取服务器上的当前日期。创建一个Date对象即会返回当前系统时间,如`Date ...
根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下有关 Java 日期处理的知识点: ### 1. 导入必要的包 在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例...
在Java编程中,日期处理是常见的任务之一,用于管理和计算日期和时间。Java提供了多种类和方法来处理日期,如`Date`、`SimpleDateFormat`和`Calendar`。以下是关于这些类和方法的详细说明: 1. **`java.util.Date`*...
第一部分关于JAVA的Date (参考关于JAVA的Date总结) 第二部分Date工具类(参考一个总结好的很好的关于JAVA的Date工具类)
在Java编程中,日期处理是常见的任务之一,用于管理和计算日期和时间。本文将深入探讨Java中的日期处理机制,特别是围绕`java.util.Date`和`java.util.Calendar`这两个核心类。 首先,`java.util.Date`类是Java中...
1. **Java日期处理**: - `java.time`包:Java 8引入的新时间日期API,提供了`LocalDate`, `LocalTime`, `LocalDateTime`等类,它们提供了丰富的日期和时间操作功能。 - `SimpleDateFormat`:旧版日期格式化工具,...