java.util 包提供了一些实用的方法和数据结构。
Date 类
Date 类表示日期和时间,里面封装了操作日期和时间的方法。Date 类经常用来获取系统当前时间。
构造方法:
构造方法 说明 Date() 构造一个 Date 对象并对其进行初始化以反映当前时间 Date(long date) 构造一个 Date 对象,并根据相对于 GMT 1970年1月1日00:00:00的毫秒数对其进行初始化 常用方法:
- toString(),返回字符串,表示当前日期和时间。
- getTime(),返回long类型,表示自1970年1月1日经历的毫秒数值。
日期格式化
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 ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("Current Date: " + ft.format(dNow)); } }
运行结果:
时间模式字符串用来指定时间格式。在此模式中,所有的 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 对于时间模式字符串中的普通字符,必须要用单引号字符括起。
printf
printf 方法可以很轻松地格式化时间和日期。使用两个字母格式,它以 %t 开头并且以下面表格中的一个字母结尾。
Calendar 类
Calendar 类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。
Calendar类对象状态:
1代表星期日、2代表星期1、3代表星期二,以此类推。此外MONTH为0代表1月。
可以用.set(年, 月-1, 日)或.set(Calendar.DATE,10)设置对象信息。类似的还有方法.add(Calendar.DATE, 10),其它所有数值会被重新计算。此外可以用.get(Calendar.DAY_OF_WEEK)获取对象信息。
GregorianCalendar 类的构造函数:
构造方法 说明 GregorianCalendar() 创建的对象中的相关值被设置成指定时区,缺省地点的当前时间,即程序运行时所处的时区、地点的当前时间 GregorianCalendar(TimeZone zone) 创建的对象中的相关值被设置成指定时区 zone,缺省地点的当前时间 GregorianCalendar(Locale aLocale) 创建的对象中的相关值被设置成缺省时区,指定地点 aLocale 的当前时间 GregorianCalendar(TimeZone zone, Locale aLocale) year - 创建的对象中的相关值被设置成指定时区,指定地点的当前时间
TimeZone 是 java.util 包中的一个类,其中封装了有关时区的信息。每一个时区对应一组 ID。类 TimeZone 提供了一些方法完成时区与对应 ID 两者之间的转换。
Locale 只是一种机制,它用来标识一个特定的地理、政治或文化区域获取一个 Locale 对象的构造方法。
Random 类
Java 实用工具类库中的类 java.util.Random 提供了产生各种类型随机数的方法,而java.lang.Math 中的方法 Random() 只产生0-1之间 double 型的随机数。
构造方法:
构造方法 说明 Random() 产生一个随机数需要基值,这里将系统时间作为 seed Random(long seed) 使用单个 long 种子创建一个新的随机数生成器
参考资料
- 实验楼:JDK 核心 API
- 菜鸟教程:Java 日期时间