java.util包
java.util包中放置了Java开发过程中常用的工具类,如日期时间类,日历类等等
java.util包常用类
- Date
- Calendar及其子类
- 集合接口以及实现类
- 集合工具类
- 数组工具类等等
java.util.Date类
Date类表示特定的时间,可以精确到毫秒。
Date类的构造方法
Date() 无参构造方法
Date(long time) 有长整形参数的构造方法
其他构造方法已经废弃不用
Date类常用方法
long getTime();返回1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
String toString();将Date对象转换为字符串,默认的转换格式为:dow mon dd hh:mm:ss zzz yyyy
java.util.Calendar类
java.util.Date类中获取当前年、月、日和将时间格式化以及将字符串类型的日期转换为Date对象的方法都已经被废弃。
如果想要获取Date对象的年、月、日、星期等操作,需要使用Calendar类以及其子类完成。
Calendar是一个抽象类,它为获取和修改年、月、日、星期等日历字段提供了一系列的方法。
Calendar常用方法
- Calendar getInstance();返回一个Calendar对象
- void set(int field,int x);设置日历字段的值
- int get(int field);获取某个日历字段的值
- java.util.Date getTime();返回代表该日历对象的Date值
- void setTime(java.util.Date date);使用指定的Date设置该日历对象
常用的日历字段
- AM_PM 上午或者下午
- YEAR 年
- MONTH 月
- DATE 日
- HOUR 12小时制
- HOUR_OF_DAY 24小时制
- MINUTE 分钟
- SECOND 秒
- MILLISECOND 毫秒
GregorianCalendar是Calendar的一个直接子类
提供了世界上大多数国家/地区使用的标准日历系统,即中国所谓的阳历或者公历
常用方法
- boolean isLeapYear(int year) 判断指定年份是不是闰年
- void add(int field ,int x)为指定的日历字段增加值
java.text包
提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口
java.text包常用类或者接口
- DateFormat以及子类SimpleDateFormat
- NumberFormat以及子类DecimalFormat
java.text.DateFormat类
- DateFormat是一个抽象的时间格式化类
- DateFormat 是日期/时间格式化的抽象类,它以与语言无关的方式格式化并解析日期或时间。
- DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。
- 在格式化和解析日期时间过程中,其子类SimpleDateFormat更为常用
java.text.SimpleDateFormat类
SimpleDateFormat类是一个以与语言环境有关的方式来格式化和解析日期的具体类
它提供了格式化日期时间(日期时间>>字符串)和解析日期时间(字符串>>日期时间)的方法
SimpleDateFormat构造方法
- SimpleDateFormat()
- SimpleDateFormat(String pattern) 按照指定的模式创建SimpleDateFormat对象
日期时间模式
编辑
常用方法
- String format(Date date);将一个java.util.Date对象按照指定的模式格式化为日期
- Date parse(String date);将一个日期字符串按照指定模式解析为java.util.Date类型的对象
代码示例
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatTest { public static void main(String[] args) { //根据指定模式创建SimpleDateFormat对象 SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日"); //创建日期对象 Date date=new Date(); //将Date对象按照yyyy年MM月dd日的模式格式化为字符串 String text=sdf.format(date); //输入内容类似于2022年02月03日 System.out.println(text); //创建字符串类型日期 String dateStr="2022年02月03日"; try { //将字符串日期按照yyyy年MM月dd日的模式解析为Date对象 Date date1=sdf.parse(dateStr); //输入解析的时间对象 System.out.println(date1); } catch (ParseException e) { //打印出解析字符串时间的异常 e.printStackTrace(); } } }
java.text.NumberFormat类
NumberFormat是一个数字格式化抽象类
该类提供了格式化和解析数值的方法
常用方法
- String format(double d)将数字格式化为字符串
- Number parse(String s)将字符串解析为数字
- void setMaximumFractionDigits(int newValue)设置最大小数位
- void setMinimumFractionDigits(int newValue) 设置最小小数位
通常情况下会使用其子类DecimalFormat格式化或者解析数字
java.text.DecimalFormat类
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。
构造方法
- DecimalFormat()
- DecimalFormat(String pattern)按照指定模式构建对象
数字模式字符
编辑
常用方法
- String format(double d);格式化数字为字符串
- Number parse(String str);解析字符串数字为Number对象
代码示例
import java.text.DecimalFormat; import java.text.ParseException; public class DecimalFormatTest { public static void main(String[] args) { //创建#,###,###.0模式的DecimalFormat对象 DecimalFormat df=new DecimalFormat("#,###,###.0"); //创建一个double类型的数字 double digit=12345667.9234; //将digit格式化为#,###,###.0模式的字符串 String text=df.format(digit); //输出数字格式化后的字符串 System.out.println(text); try { //解析文本为#,###,###.0模式的字符串为数字 Number num= df.parse("1234,032.2131"); //输出解析后的数字 System.out.println(num); } catch (ParseException e) { //打印解析异常 e.printStackTrace(); } } }