帮我用java写一个对时间操作的工具类,包含丰富的常用方法
时间: 2024-02-20 21:00:43 浏览: 74
好的,以下是一个Java时间操作的工具类,包含常用的方法:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TimeUtils {
/**
* 获取当前时间戳(单位:秒)
*/
public static long getCurrentTimestamp() {
return System.currentTimeMillis() / 1000;
}
/**
* 将时间戳转换为Date类型
*
* @param timestamp 时间戳(单位:秒)
*/
public static Date timestampToDate(long timestamp) {
return new Date(timestamp * 1000);
}
/**
* 将Date类型转换为时间戳(单位:秒)
*
* @param date Date类型的时间
*/
public static long dateToTimestamp(Date date) {
return date.getTime() / 1000;
}
/**
* 将时间戳转换为指定格式的时间字符串
*
* @param timestamp 时间戳(单位:秒)
* @param pattern 时间格式,例如:"yyyy-MM-dd HH:mm:ss"
*/
public static String timestampToString(long timestamp, String pattern) {
Date date = new Date(timestamp * 1000);
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 将指定格式的时间字符串转换为Date类型
*
* @param time 时间字符串
* @param pattern 时间格式,例如:"yyyy-MM-dd HH:mm:ss"
*/
public static Date stringToDate(String time, String pattern) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(time);
}
/**
* 获取指定时间的年份
*
* @param date 时间
*/
public static int getYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/**
* 获取指定时间的月份
*
* @param date 时间
*/
public static int getMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}
/**
* 获取指定时间的日期
*
* @param date 时间
*/
public static int getDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_MONTH);
}
/**
* 获取指定时间的小时数(24小时制)
*
* @param date 时间
*/
public static int getHour(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.HOUR_OF_DAY);
}
/**
* 获取指定时间的分钟数
*
* @param date 时间
*/
public static int getMinute(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MINUTE);
}
/**
* 获取指定时间的秒数
*
* @param date 时间
*/
public static int getSecond(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.SECOND);
}
/**
* 获取指定时间的星期几(1表示星期日,2表示星期一,以此类推)
*
* @param date 时间
*/
public static int getWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_WEEK);
}
/**
* 获取指定时间的当月第一天
*
* @param date 时间
*/
public static Date getFirstDayOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 获取指定时间的当月最后一天
*
* @param date 时间
*/
public static Date getLastDayOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.getTime();
}
}
```
以上是一个简单的时间操作工具类,包含了常用的时间转换、获取时间信息等方法,可以根据自己的需求进行扩展和修改。
阅读全文