当前位置:网站首页>日期操作比较全面得代码
日期操作比较全面得代码
2022-08-09 09:28:00 【潇湘梦】
Java 的Date操作保留 测试可以采用junitTest 或者main方法测试验证
public static String formatDate(java.util.Date date) {
return formatDateByFormat(date, "yyyy-MM-dd");
}
public static String formatDateByFormat(java.util.Date date, String format) {
String result = "";
if (date != null) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
result = sdf.format(date);
} catch (Exception ex) {
logger.error(ex.getMessage());
}
}
return result;
}
public static java.util.Date parseDate(java.sql.Date date) {
return date;
}
public static java.sql.Date parseSqlDate(java.util.Date date) {
if (date != null) {
return new java.sql.Date(date.getTime());
} else {
return null;
}
}
public static String format(java.util.Date date, String format) {
String result = "";
try {
if (date != null) {
java.text.DateFormat df = new java.text.SimpleDateFormat(format);
result = df.format(date);
}
} catch (Exception e) {
logger.error(e.getMessage());
}
return result;
}
public static String format(java.util.Date date) {
if(null!=date){
return format(date, "yyyy/MM/dd");
}
return null;
}
public static String format1(java.util.Date date) {
if(null!=date){
return format(date, "yyyy-MM-dd");
}
return null;
}
public static int getYear(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.YEAR);
}
public static int getMonth(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.MONTH) + 1;
}
public static int getDay(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.DAY_OF_MONTH);
}
public static int getHour(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.HOUR_OF_DAY);
}
public static int getMinute(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.MINUTE);
}
public static int getSecond(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.SECOND);
}
public static long getMillis(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.getTimeInMillis();
}
public static int getWeek(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(java.util.Calendar.DAY_OF_WEEK);
dayOfWeek = dayOfWeek - 1;
if (dayOfWeek == 0) {
dayOfWeek = 7;
}
return dayOfWeek;
}
public static String getDate(java.util.Date date) {
return format(date, "yyyy/MM/dd");
}
public static String getDate(java.util.Date date,String formatStr) {
return format(date, formatStr);
}
public static String getTime(java.util.Date date) {
return format(date, "HH:mm:ss");
}
public static String getDateTime(java.util.Date date) {
return format(date, "yyyy-MM-dd HH:mm:ss");
}
/** * 日期月份相加减 * @param date 具体的时间 * @param month 相加减的月份 * @return 处理后的时间 */
public static Date addMonth(Date date, int month) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, month);
return calendar.getTime();
}
/** * 日期相加 * @param date Date * @param day int * @return Date */
public static java.util.Date addDate(java.util.Date date, int day) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);
return c.getTime();
}
/** * 日期相减 * @param date Date * @param date1 Date * @return int */
public static int diffDate(java.util.Date date, java.util.Date date1) {
return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));
}
/** * 日期相减(返回秒值) * @param date Date * @param date1 Date * @return int * @author */
public static Long diffDateTime(java.util.Date date, java.util.Date date1) {
return (Long) ((getMillis(date) - getMillis(date1))/1000);
}
public static java.util.Date getdate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(date);
}
public static java.util.Date getdate1(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(date);
}
public static java.util.Date getMaxTimeByStringDate(String date) throws Exception {
String maxTime = date + " 23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(maxTime);
}
/** * 获得当前时间 * @return * @throws ServiceException */
public static Date getCurrentDateTime() throws Exception
{
Date date=new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = DateUtil.getDateTime(date);
return sdf.parse(result);
}
public static String getCurrentDateTimeToStr() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(getCurrentDateTime());
}
public static String getCurrentDateTimeToStr2() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(getCurrentDateTime());
}
public static Long getWmsupdateDateTime() {
Calendar cl=Calendar.getInstance();
return cl.getTimeInMillis();
}
public static Integer getLeftSeconds(String date)throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date condition = sdf.parse(date);
long n = condition.getTime();
long s = sdf.parse(getCurrentDateTimeToStr2()).getTime();
// System.out.println("开始时间:"+date+"-->"+(int)((s-n)/1000));
return (int)((s-n)/1000);
}
/** * 获得时间戳 * @return * @throws Exception */
public static String getTime(){
Date date=new Date();
return String.valueOf(date.getTime());
}
/** 判断日期格式是否正确 */
public static boolean validateDate(String dateString){
//使用正则表达式 测试 字符 符合 dddd-dd-dd 的格式(d表示数字)
Pattern p = Pattern.compile("\\d{4}+[-]\\d{2}+[-]\\d{2}+");
Matcher m = p.matcher(dateString);
if(!m.matches()){
return false;
}
//得到年月日
String[] array = dateString.split("-");
int year = Integer.parseInt(array[0]);
int month = Integer.parseInt(array[1]);
int day = Integer.parseInt(array[2]);
if(month<1 || month>12){
return false;
}
int[] monthLengths = new int[]{
0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(isLeapYear(year)){
monthLengths[2] = 29;
}else{
monthLengths[2] = 28;
}
int monthLength = monthLengths[month];
if(day<1 || day>monthLength){
return false;
}
return true;
}
/** 是否是闰年 */
public static boolean isLeapYear(int year){
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;
}
/** * 将时间格式的字符串,转换为时间 * * @param str 时间格式的字符串 * @param pattern 转换格式 * @return java.util.Date */
public static Date parseToDate(String str, String pattern) {
DateFormat df = new SimpleDateFormat(pattern);
try {
return df.parse(str);
} catch (ParseException e) {
}
return null;
}
/** * 将时间格式的字符串,转换为时间 * * @param str 时间格式的字符串 * @param pattern 转换格式 * @return java.util.Date */
public static Date parseToDateWithThrowException(String str, String pattern) throws ParseException{
DateFormat df = new SimpleDateFormat(pattern);
return df.parse(str);
}
public static Date getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
return cal.getTime();
}
public static Date getFirstDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, -1);
return cal.getTime();
}
public static String getFirstDayOfMonthStr(String yearMonth) {
int year = getYear(yearMonth);
int month = getMonth(yearMonth);
return getFirstDayOfMonthStr(year, month);
}
private static int getYear(String yearMonth) {
return Integer.parseInt(yearMonth.substring(0, 4));//get year
}
private static int getMonth(String yearMonth) {
return Integer.parseInt(yearMonth.substring(4, 6));//get month
}
public static String getLastDayOfMonthStr(int year, int month) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH,1);
cal.add(Calendar.DAY_OF_MONTH,-1);
return sdf.format(cal.getTime());
}
public static String getLastDayOfMonthStr(String yearMonth) {
int year = getYear(yearMonth);
int month = getMonth(yearMonth);
return getLastDayOfMonthStr(year, month);
}
public static String getFirstDayOfMonthStr(int year, int month) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
return sdf.format(cal.getTime());
}
/** * 返回当月最后一天的日期 */
public static Date getLastDayOfMonth(Date date) {
Calendar calendar = convert(date);
calendar.set(Calendar.DATE, calendar.getMaximum(Calendar.DATE));
return calendar.getTime();
}
/** * 返回当月最后一天的日期 */
public static Date getFirstDayOfMonth(Date date) {
Calendar calendar = convert(date);
calendar.set(Calendar.DATE, calendar.getMinimum(Calendar.DATE));
return calendar.getTime();
}
/** * 将日期转换为日历 * @param date 日期 * @return 日历 */
private static Calendar convert(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
public static Date getDayOfThisMonth(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, day);
cal.add(Calendar.MONTH, -1);
return cal.getTime();
}
/** * 获得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */
public static String getCurrentDayBefore(Date date,String format) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat(format).format(c.getTime());
return dayBefore;
}
/** * 检查日期时间段是否重叠 * @param checkDate * @param startDate * @param endDate * @return */
public static boolean checkDateRepeart(Date checkStartDate,Date checkEndtDate,Date startDate,Date endDate){
if(checkStartDate.getTime()==startDate.getTime() ||checkStartDate.getTime()==endDate.getTime()){
return true;
}
if(checkEndtDate.getTime()==startDate.getTime() ||checkEndtDate.getTime()==endDate.getTime()){
return true;
}
if(checkStartDate.getTime()>startDate.getTime() && checkStartDate.getTime()<endDate.getTime()){
return true;
}
if(checkEndtDate.getTime()>startDate.getTime() && checkEndtDate.getTime()<endDate.getTime()){
return true;
}
return false;
}
//得到本月的第一天
public static String getMonthFirstDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
SimpleDateFormat firstDay= new SimpleDateFormat("yyyy-MM-dd");
return firstDay.format(calendar.getTime());
}
//得到本月的最后一天
public static String getMonthLastDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
SimpleDateFormat lastDay= new SimpleDateFormat("yyyy-MM-dd");
return lastDay.format(calendar.getTime());
}
// 得到上月的第一天
public static String getPerMonthFirstDay() {
Calendar cal = Calendar.getInstance();
// 上个月
cal.add(Calendar.MONTH, -1);
// 设置为1号,当前日期既为本月第一天
cal.set(Calendar.DAY_OF_MONTH, 1);
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
String firstDay = sm.format(cal.getTime());
return firstDay;
}
// 得到上月的最后一天
public static String getPerMonthLastDay() {
Calendar call = Calendar.getInstance();
// 设置上个月最后一天
call.set(Calendar.DAY_OF_MONTH, 0);
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
String lastDay = sm.format(call.getTime());
return lastDay;
}
// 得到下个月的第一天
public static String getNextMonthFirstDate(String dateStr){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nextMonthFirstDate = "";
try {
Date date = sdf.parse(dateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.MONTH, 1);
nextMonthFirstDate = sdf.format(calendar.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return nextMonthFirstDate;
}
边栏推荐
- 接口测试主要测试哪方面?需要哪些技能?要怎么学习?
- on duplicate key update
- 关于一次性通过CISSP考试的一点经验分享
- Ontology Development Diary 03 - When debugging is in progress
- 真·鸡汤文
- 8.Properties属性集合
- 手机APP测试流程规范和方法你知道多少?
- 接口测试的概念、目的、流程、测试方法有哪些?
- JS报错-Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on...
- "The camera can't be used" + win8.1 + DELL + external camera + USB drive-free solution
猜你喜欢
随机推荐
真·鸡汤文
秒拍app分析
性能测试包括哪些方面?分类及测试方法有哪些?
本体开发日记02-sparql简单查询
Tigase插件编写——注册用户批量查询
接口设计
Golang Protobuf 处理
QT sets the icon of the exe executable
软件测试个人求职简历该怎么写,模板在这里
1.线程简介
Openwrt配置Aria2(Hg255d)
软件测试分析流程及输出项包括哪些内容?
手机APP测试流程规范和方法你知道多少?
软件测试面试常见问题及答案(发散思维、接口、性能、概念、)
Sweet alert
oracle查看表空间占用情况并删除多余表所占空间
软件测试的流程规范有哪些?具体要怎么做?
软件测试面试中,面试官问你一些比较“刁难”的问题你会怎么回答
第三方免费开放API 获取用户IP 并查询其地理位置
What are the basic concepts of performance testing?What knowledge do you need to master to perform performance testing?