Java中的时间函数:Date、Calendar和SimpleDateFormat的使用方法
发布时间:2023-09-14 17:46:48
Java中的时间函数是用于处理日期和时间的类和方法的集合。其中最常用的包括java.util.Date、java.util.Calendar和java.text.SimpleDateFormat。下面将介绍它们的使用方法。
1. java.util.Date:
Date类用于表示时间点,可以用于获取当前时间、表示一个特定的时间点或者将时间戳转换为特定格式的字符串。
- 获取当前时间:
Date now = new Date();
- 将时间戳转换为日期对象:
long timestamp = System.currentTimeMillis();
Date date = new Date(timestamp);
- 将日期对象转换为时间戳:
long timestamp = date.getTime();
- 格式化日期为字符串:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(date);
- 解析字符串为日期对象:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2021-01-01 12:00:00");
2. java.util.Calendar:
Calendar类用于进行日期和时间的计算和操作。它提供了一些方法来获取、设置和操作日期的各个字段,如年、月、日、时、分、秒等。
- 获取当前日期和时间:
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 月份从0开始,所以需要加1
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 calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 0); // 月份从0开始,所以0表示1月
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
- 对日期和时间进行加减:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1); // 加一个月
calendar.add(Calendar.DAY_OF_MONTH, -1); // 减一天
- 判断是否为闰年:
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
3. java.text.SimpleDateFormat:
SimpleDateFormat类用于将日期对象格式化为指定的字符串,或者将字符串解析为日期对象。
- 格式化日期为字符串:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(date);
- 解析字符串为日期对象:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2021-01-01 12:00:00");
- 自定义日期格式:
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
String formattedDate = sdf.format(date); // 输出的格式类似于 Wed, 01 Jan 2021 12:00:00 +0800
以上是Date、Calendar和SimpleDateFormat的使用方法。通过这些类和方法,可以方便地处理日期和时间的各种操作、格式化和解析。
