Java中的日期时间处理及格式化处理
Java中完整的日期时间处理需要使用到Java.util包和Java.text包的类。日期时间处理主要包括以下内容:
1. Date类
Java中的Date类表示日期和时间的类。它表示的是一个具体的时间点,精度为毫秒级别。常用的方法有:
//获取当前时间
Date today = new Date();
//获取时间戳
long timestamp = today.getTime();
//将long类型的时间戳转换成Date类型
Date date = new Date(timestamp);
//将Date转换成String并格式化输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(date);
System.out.println(dateStr);
2. Calendar类
Calendar类是一个抽象类,提供了处理日期和时间的方法。可以使用Calendar.getInstance()静态方法获取一个Calendar对象并进行日期时间处理。常用的方法有:
//获取当前时间的Calendar实例
Calendar calendar = Calendar.getInstance();
//获取年份、月份、日期等信息
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); //注意:月份从0开始计数
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
//添加/减少时间
calendar.add(Calendar.DAY_OF_MONTH, 3); //向后加3天
calendar.add(Calendar.MONTH, -1); //向前减1个月
3. SimpleDateFormat类
SimpleDateFormat类用来格式化Date对象成指定格式的字符串,并将字符串解析为Date对象。常用的格式化方法有:
//将日期格式化成指定格式的字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(new Date());
//将字符串解析成日期
Date date = sdf.parse("2021-07-25 10:00:00");
4. DateTimeFormatter类
在Java 8中,引入了一个新的日期时间API:java.time包。其中包含的DateTimeFormatter类可用于格式化LocalDateTime、ZonedDateTime和OffsetDateTime等日期时间对象。
//创建DateTimeFormatter对象
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//将LocalDateTime对象格式化成字符串
LocalDateTime now = LocalDateTime.now();
String dateStr = dateFormatter.format(now);
String dateTimeStr = dateTimeFormatter.format(now);
//将字符串解析成LocalDateTime对象
LocalDateTime date = LocalDateTime.parse("2021-07-25 10:00:00", dateTimeFormatter);
示例
示例1:获取当前时间并格式化输出
Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(today);
System.out.println(dateStr);
输出结果:2021-07-25 14:30:00
示例2:计算从今天起3天后的日期并输出格式化后的结果
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 3);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(calendar.getTime());
System.out.println(dateStr);
输出结果:2021-07-28 14:30:00
示例3:将字符串解析成日期时间对象并格式化输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2021-07-25 10:00:00");
System.out.println(date);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.parse("2021-07-25 10:00:00", dtf);
System.out.println(ldt);
输出结果:
Sun Jul 25 10:00:00 CST 2021
2021-07-25T10:00:00
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中的日期时间处理及格式化处理 - Python技术站