javase-日期的处理
java中时间日期处理
在用java做时间处理,需要使用:
- java.util.Date 类表示特定的的瞬间,精确到毫秒。
- java.text.DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
- java.text.SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期–>文本),解析(文本–>日期)和规范化。
- java.util.Calendar 类是一个抽象类,它为特定瞬间与日历字段之间的转换提供一些方法,并操作日历字段提供一些方法。
Date 的使用
常用构造器与方法:
- Date() :分配Date来初始化对象。
- Date(long date) :使用指定毫秒数的时间来创建Date初始化对象。
- String getTime() :返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
Date date = new Date();
Date date_1 = new Date(System.currentTimeMillis());
//date 与 date_1 打印的都是Mon Mar 25 09:52:45 CST 2019 默认的格式
long date_l = date.getTime();//返回的是1970 年 1 月 1 日到至今的时间的毫秒数
DateFormat 的使用
常用构造器与方法:
- String format(Date date) :将一个 Date 格式化为日期/时间字符串。
- Date parse(String source) :从给定字符串的开始解析文本,以生成一个日期。
SimpleDateFormat 的使用
常用构造器与方法:
- SimpleDateFormat() :用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
- SimpleDateFormat() :用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
日期-->文本
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//自定义格式化
String str = df.format(date);//将Date格式转换为自定义的格式化时间
文本-->日期
String str = "2019-03-25 10:21:45";//自定义日期
Date date = new Date();
DateFormat df = new SimpleDateFormat("yy-MM-dd hh:mm:ss");//自定义格式化
try {
date = df.parse(str);//解析字符串变为文本格式
} catch (ParseException e) {
e.printStackTrace();
}
Calendar 的使用
常用构造器与方法:
- void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- Calendar getInstance() :获得子类的对象寻求更强大的功能,使用默认时区和语言环境获得一个日历。
- int get(int field):field通过Calendar.常量类获取年月日等信息。返会给定日历字段的值。
- void set(int field, int value) :设置日历,将给定的日历字段设置为给定值。
- long getTimeInMills() :返回次 Calender 的时间值,以毫秒为单位。
//获取日历类的功能类
Calendar calendar = Calendar.getInstance();
//获取当前的年,月,日
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
Calendar calendar1 = Calendar.getInstance();
//设置年,月,日
calendar1.set(2018, 4, 9, 13, 24, 7);
System.out.println(calendar1.get(Calendar.YEAR) + "年" + calendar1.get((Calendar.MONTH) + 1) + "月" + calendar1.get(Calendar.DAY_OF_MONTH) + "日");
calendar.add(Calendar.YEAR, 0);
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(calendar.get(Calendar.YEAR) + "年" + calendar.get(Calendar.MONTH) + "月" + calendar.get(Calendar.DAY_OF_MONTH) + "日");