SimpleDateFormat和Calendar类一些日期处理方式,如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类
* @author ouyangjun
*/
public class DateFormatTest {
// 年-月-日 时:分:秒
public static String DATE_PATTERN_1 = "yyyy-MM-dd HH:mm:ss";
public static String DATE_PATTERN_2 = "yyyy/MM/dd HH:mm:ss";
public static String DATE_PATTERN_3 = "yyyyMMddHHmmss";
public static String DATE_PATTERN_4 = "yyyy-MM-dd";
public static String DATE_PATTERN_5 = "yyyyMMddHHmmssSSS";
/**
* 把日期转换成24小时字符串日期
* @param date
* @return
*/
public static String formatDate24(Date date) {
SimpleDateFormat timeFt = new SimpleDateFormat(DATE_PATTERN_1);
String timeStr = (date == null ? "" : timeFt.format(date));
return timeStr;
}
/**
* 把时间戳转换字符日期
* @param string
* @return
*/
public static String formatTimeStamp(long time) {
return formatDate24(Date.from(Instant.ofEpochMilli(time)));
}
/**
* 把字符型时间戳转换字符日期
* @param string
* @return
*/
public static String formatTimeStamp(String date) {
if (date != null) {
return null;
}
Long time = Long.valueOf(date);
return formatDate24(Date.from(Instant.ofEpochMilli(time)));
}
/**
* 计算某一天的毫秒数
* @param day
* @return
*/
public static long calcTimeStamp(int day) {
return day * 24 * 60 * 60 * 1000;
}
/**
* 获取过去第几天的日期,并把日期转换成字符日期
* @param past
* @return
*/
public static String getPastDate(int past) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
Date today = calendar.getTime();
return formatDate24(today);
}
/**
* 获取未来第几天的日期,并把日期转换成字符日期
* @param next
* @return
*/
public static String getNextDate(int next) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + next);
Date today = calendar.getTime();
return formatDate24(today);
}
public static void main(String[] args) throws ParseException {
Date date = new Date();
String timeStr = formatDate24(date);
System.out.println("把日期转换成24小时字符串日期: "+ timeStr);
System.out.println("把时间戳转换字符日期: "+ formatTimeStamp(date.getTime()));
System.out.println("计算某一天的毫秒数: " + calcTimeStamp(7));
System.out.println("获取过去第几天的日期,并把日期转换成字符日期: " + getPastDate(7));
System.out.println("获取未来第几天的日期,并把日期转换成字符日期: " + getNextDate(7));
//得到当前时间
Calendar cal = Calendar.getInstance();
// 运算日期
cal.add(Calendar.YEAR, 1);//年
cal.add(Calendar.MONTH, 1);//月
cal.add(Calendar.DATE, 1);//日
cal.add(Calendar.HOUR_OF_DAY, -1);//时
cal.add(Calendar.MINUTE, 1);//分
cal.add(Calendar.SECOND, 1);//秒
cal.add(Calendar.DATE, 7);//周
// 获取日期
int y = cal.get(Calendar.YEAR);//年
int m = cal.get(Calendar.MONTH);//月
int d = cal.get(Calendar.DATE);//日
int h = cal.get(Calendar.HOUR_OF_DAY);//时
int min = cal.get(Calendar.MINUTE);//分
int second = cal.get(Calendar.SECOND);//秒
int week = cal.get(Calendar.DAY_OF_WEEK);//星期
System.out.println("运算后的日期: "+ y+"-"+m+"-"+d+"-"+h+"-"+min+"-"+second+":"+week);
// 设置日期
cal.set(2018, 7, 24, 13, 44, 51);//年月日时分秒(月份0代表1月)
cal.set(Calendar.YEAR, 2018);//年
cal.set(Calendar.MONTH, 7);//月(月份0代表1月)
cal.set(Calendar.DATE, 24);//日
cal.set(Calendar.HOUR_OF_DAY, 16);//时
cal.set(Calendar.MINUTE, 47);//分
cal.set(Calendar.SECOND, 47);//秒
// 获取日期
y = cal.get(Calendar.YEAR);//年
m = cal.get(Calendar.MONTH);//月
d = cal.get(Calendar.DATE);//日
h = cal.get(Calendar.HOUR_OF_DAY);//时
min = cal.get(Calendar.MINUTE);//分
second = cal.get(Calendar.SECOND);//秒
week = cal.get(Calendar.DAY_OF_WEEK);//星期
System.out.println("设置后的日期: "+ y+"-"+m+"-"+d+"-"+h+"-"+min+"-"+second+":"+week);
}
}
本文说明:该文章属于原创,如需转载,请标明文章转载来源