救济小白培训记一_JAVA日期工具类包含很多常用操作日期和时间戳方法
常用操作日期和操作时间戳方法,拿着直接用系列
package com.gxw.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTime {//日期时间24小时格式字符串
public final static String formatDateTime24H = "yyyy-MM-dd HH:mm:ss";
//日期时间12小时格式字符串
public final static String formatDateTime12H = "yyyy-MM-dd hh:mm:ss";
//日期格式字符串
public final static String formatDate = "yyyy-MM-dd";
//时间24格式字符串
public final static String formatTime24H = "HH:mm:ss";
//时间12格式字符串
public final static String formatTime12H = "hh:mm:ss";
/**
* 获取当前日期戳 yyyy-MM-dd hh:mm:ss
* @return
*/
public static String getNowDateStamp(){
return String.valueOf(new Date().getTime());
}/**
* 获取当前日期字符串 yyyy-MM-dd hh:mm:ss
* @return
*/
public static String getNowDateStr(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
return sdf.format(date);
}/**
* 时间戳转日期
* @param stamp
* @param format
* @return
*/
public static String getStampCaseDate(String stamp, String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
long stp = new Long(stamp);
Date date = new Date(stp);
String str = sdf.format(date);
return str;
}/**
* 时间戳转日期
* @param stamp
* @return
*/
public static String getStampCaseDateFor24(String stamp){
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
long stp = new Long(stamp);
Date date = new Date(stp);
String str = sdf.format(date);
return str;
}/**
* 字符串日期转换时间戳
* @param date
* @return
*/
public static String getDateCaseStamp(String date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date d = sdf.parse(date);
return String.valueOf(d.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}/**
* 字符串日期转换时间戳
* @param date
* @return
*/
public static String getDateStrCaseStamp(String date, String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date d = sdf.parse(date);
return String.valueOf(d.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}/**
* 获取当周的周一日期
* @return
*/
public static String getNowWeekStartStamp(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
//获得当前日期是一个星期的第几天
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
if(dayWeek==1){
dayWeek = 8;
}// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - dayWeek);
Date mondayDate = cal.getTime();
mondayDate.setHours(00);
mondayDate.setMinutes(00);
mondayDate.setSeconds(00);
String weekBegin = sdf.format(mondayDate);
//System.out.println("所在周星期一的日期:" + weekBegin);
return String.valueOf(mondayDate.getTime());
}/**
* 获取当周的周天日期
* @return
*/
public static String getNowWeekEndStamp(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
cal.setFirstDayOfWeek(Calendar.MONDAY);
//获得当前日期是一个星期的第几天
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
if(dayWeek==1){
dayWeek = 8;
}
// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - dayWeek);
cal.add(Calendar.DATE, 4 +cal.getFirstDayOfWeek());
Date sundayDate = cal.getTime();
sundayDate.setHours(23);
sundayDate.setMinutes(59);
sundayDate.setSeconds(59);
String weekEnd = sdf.format(sundayDate);
//System.out.println("所在周星期日的日期:" + weekEnd);
return String.valueOf(sundayDate.getTime()).substring(0,10) + "999";
}/**
* 将当天时间戳转换成当天最大时间的时间戳
* @param stamp
* @return
*/
public static String getStampMaxDate(String stamp){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(Long.parseLong(stamp));
String dateStr = sdf.format(date) + " 23:59:59";
String rsStamp = getDateCaseStamp(dateStr);
return rsStamp;
}/**
* 获取当前时间的两月前时间戳
* @return
*/
public static String getStamp2MonthBeforeDate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DATE, 1);
//设置当前月的一号
calendar.add(Calendar.MONTH, -2);
//0表示当前月,-2就是当前月-2
calendar.set(Calendar.HOUR_OF_DAY, 0);
//设置当天几时
calendar.set(Calendar.MINUTE, 0);
//设置当天几分
calendar.set(Calendar.SECOND, 0);
//设置当天几秒
calendar.set(Calendar.MILLISECOND, 0);
//设置当天几毫秒
long t = calendar.getTimeInMillis();
String s = sdf.format(new Date(t));
System.out.println(t);
System.out.println(s);
return String.valueOf(calendar.getTimeInMillis());
}/**
* 校验日期是否合法
* @return
*/
public static boolean isValidDate(String s) {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
try {
fmt.parse(s);
return true;
} catch (Exception e) {
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
return false;
}
}/**
* 功能描述:时间相减得到天数
* @param beginDateStr
* @param endDateStr
* @return
* long
* @author Administrator
*/
public static long getDaySub(String beginDateStr,String endDateStr){
long day=0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate = null;
Date endDate = null;
try {
beginDate = format.parse(beginDateStr);
endDate= format.parse(endDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);
//System.out.println("相隔的天数="+day);
return day;
}/**
* 得到n天之后的日期
* @param days
* @return
*/
public static String getAfterDayDate(String days) {
int daysInt = Integer.parseInt(days);
Calendar canlendar = Calendar.getInstance();
// java.util包
canlendar.add(Calendar.DATE, daysInt);
// 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdfd.format(date);
return dateStr;
}/**
* 得到n天之后是周几
* @param days
* @return
*/
public static String getAfterDayWeek(String days) {
int daysInt = Integer.parseInt(days);
Calendar canlendar = Calendar.getInstance();
// java.util包
canlendar.add(Calendar.DATE, daysInt);
// 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = sdf.format(date);
return dateStr;
}/**
* 得到 n 小时之后的时间戳
* @param afterHours//后几个小时
*/
public static String getAfterHours(int afterHours){
Calendar canlendar = Calendar.getInstance();
// java.util包
canlendar.add(Calendar.HOUR, afterHours);
Date date = canlendar.getTime();
return String.valueOf(date.getTime());
}/**
* 得到 n 小时之前的时间戳
* @param beforeHours//前几个小时
*/
public static String getBeforeHours(int beforeHours){
Calendar canlendar = Calendar.getInstance();
// java.util包
canlendar.add(Calendar.HOUR, -beforeHours);
Date date = canlendar.getTime();
return String.valueOf(date.getTime());
}}
推荐阅读
- 安装系统 小白一键重装系统图文详细教程图解
- 投稿|0基础速成班接连塌房,插画师培训依旧火爆? ?
- 小白入门学习Nginx代理服务器?看这篇最新Nginx进阶学习最佳配置实践指南就OK了
- {调取该文章的TAG关键词}|冲进网文搞钱的年轻人:报班培训、收入为零
- C语言|C语言打印字符,转义字符,注释(小白版)
- 本图文详细教程教你运用小白一键重装,重装从此不求人
- 小白一键重装win10系统本图文详细教程教你
- 安卓专项测试-对于小白,真的很多坑
- 小白系统w732位原版介绍
- 小白win764位旗舰版官方最新系统推荐