package com.boying.util;
|
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.concurrent.TimeUnit;
|
|
public class DateUtilOther {
|
|
public static String DateToString(Date date,String format){
|
if(!StringUtil.isNullOrEmpty(format)){
|
SimpleDateFormat f = new SimpleDateFormat(format);
|
String sDate = f.format(date);
|
return sDate;
|
}
|
SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
|
String sDate = f.format(date);
|
return sDate;
|
}
|
|
public static Date stringToDate(String date,String format) throws ParseException {
|
if(!StringUtil.isNullOrEmpty(format)){
|
SimpleDateFormat f = new SimpleDateFormat(format);
|
return f.parse(date);
|
}
|
SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
|
return f.parse(date);
|
}
|
|
public static LocalDateTime stringToLocalDate(String date,String format) throws ParseException {
|
ZoneId zoneId = ZoneId.systemDefault();
|
if(!StringUtil.isNullOrEmpty(format)){
|
SimpleDateFormat f = new SimpleDateFormat(format);
|
LocalDateTime.ofInstant(f.parse(date).toInstant(), zoneId);
|
}
|
SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
|
return LocalDateTime.ofInstant(f.parse(date).toInstant(), zoneId);
|
}
|
|
|
public static Date getYearFirst(int year){
|
Calendar calendar = Calendar.getInstance();
|
calendar.clear();
|
calendar.set(Calendar.YEAR, year);
|
Date currYearFirst = calendar.getTime();
|
return currYearFirst;
|
}
|
|
/**
|
* 获取某年最后一天日期
|
* @param year 年份
|
* @return Date
|
*/
|
public static Date getYearLast(int year){
|
Calendar calendar = Calendar.getInstance();
|
calendar.clear();
|
calendar.set(Calendar.YEAR, year);
|
calendar.roll(Calendar.DAY_OF_YEAR, -1);
|
Date currYearLast = calendar.getTime();
|
|
return currYearLast;
|
}
|
|
/**
|
* 获取指定年月的第一天
|
* @param year
|
* @param month
|
* @return
|
*/
|
public static Date getFirstDayOfMonth(int year, int month) {
|
Calendar cal = Calendar.getInstance();
|
//设置年份
|
cal.set(Calendar.YEAR, year);
|
//设置月份
|
cal.set(Calendar.MONTH, month-1);
|
//获取某月最小天数
|
int firstDay = cal.getMinimum(Calendar.DATE);
|
//设置日历中月份的最小天数
|
cal.set(Calendar.DAY_OF_MONTH,firstDay);
|
return cal.getTime();
|
}
|
|
/**
|
* 获取指定年月的最后一天
|
* @param year
|
* @param month
|
* @return
|
*/
|
public static Date getLastDayOfMonth(int year, int month) {
|
Calendar cal = Calendar.getInstance();
|
//设置年份
|
cal.set(Calendar.YEAR, year);
|
//设置月份
|
cal.set(Calendar.MONTH, month-1);
|
//获取某月最大天数
|
int lastDay = cal.getActualMaximum(Calendar.DATE);
|
//设置日历中月份的最大天数
|
cal.set(Calendar.DAY_OF_MONTH, lastDay);
|
return cal.getTime();
|
}
|
|
public static String getFirstTimeByDate() {
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Calendar cal = Calendar.getInstance();
|
String start_update = format.format(cal.getTime());
|
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY)-1);
|
String end_update = format.format(cal.getTime());
|
return end_update;
|
}
|
|
public static Date getMinute(Date date,int x){
|
Calendar beforeTime = Calendar.getInstance();
|
beforeTime.setTime(date);
|
beforeTime.add(Calendar.MINUTE, x);
|
return beforeTime.getTime();
|
}
|
|
//当天的开始
|
public static Date getStartTime() {
|
Calendar todayStart = Calendar.getInstance();
|
todayStart.set(Calendar.HOUR_OF_DAY, 0);
|
todayStart.set(Calendar.MINUTE, 0);
|
todayStart.set(Calendar.SECOND, 0);
|
todayStart.set(Calendar.MILLISECOND, 0);
|
return todayStart.getTime();
|
}
|
|
//当天的结束
|
public static Date getEndTime() {
|
Calendar todayEnd = Calendar.getInstance();
|
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
|
todayEnd.set(Calendar.MINUTE, 59);
|
todayEnd.set(Calendar.SECOND, 59);
|
todayEnd.set(Calendar.MILLISECOND, 999);
|
return todayEnd.getTime();
|
}
|
|
/**
|
* 获取当月开始时间
|
*/
|
public static Date getMonthStartTime() {
|
Calendar calendar = Calendar.getInstance();// 获取当前日期
|
calendar.add(Calendar.YEAR, 0);
|
calendar.add(Calendar.MONTH, 0);
|
calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
|
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
calendar.set(Calendar.MINUTE, 0);
|
calendar.set(Calendar.SECOND, 0);
|
calendar.set(Calendar.MILLISECOND, 0);
|
return calendar.getTime();
|
}
|
|
/**
|
* 获取当月的结束时间戳
|
*/
|
public static Date getMonthEndTime() {
|
Calendar calendar = Calendar.getInstance();// 获取当前日期
|
calendar.add(Calendar.YEAR, 0);
|
calendar.add(Calendar.MONTH, 0);
|
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天
|
calendar.set(Calendar.HOUR_OF_DAY, 23);
|
calendar.set(Calendar.MINUTE, 59);
|
calendar.set(Calendar.SECOND, 59);
|
calendar.set(Calendar.MILLISECOND, 999);
|
return calendar.getTime();
|
}
|
|
//获取参考日期的上n个月的数据
|
public static Date getDateLessMonth(int i) {
|
Calendar calendar = Calendar.getInstance();// 获取当前日期
|
calendar.add(Calendar.DAY_OF_MONTH, -i);// 设置为1号,当前日期既为本月第一天
|
return calendar.getTime();
|
}
|
|
public static String getYearMoneyDay(){
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
return sdf.format(new Date());
|
}
|
|
public static String getYearMoneyDay2(){
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Calendar rightNow = Calendar.getInstance();
|
rightNow.add(Calendar.DATE,1);
|
return sdf.format(rightNow.getTime());
|
}
|
|
public static String getYearMoneyDay3(String format) throws ParseException {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date parse = sdf.parse(format);
|
|
Calendar rightNow = Calendar.getInstance();
|
rightNow.setTime(parse);
|
rightNow.add(Calendar.DATE,1);
|
return sdf.format(rightNow.getTime());
|
}
|
|
public static Date getYearMoneyDay4(String a,String b) throws ParseException {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Date parse = sdf.parse(getYearMoneyDay3(a)+" "+b);
|
return parse;
|
}
|
public static LocalDateTime getYearMoneyDay5(String a, String b) throws ParseException {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Date parse = sdf.parse(getYearMoneyDay3(a)+" "+b);
|
ZoneId zoneId = ZoneId.systemDefault();
|
return LocalDateTime.ofInstant(parse.toInstant(), zoneId);
|
}
|
|
|
|
public static String millisToDayHrMinSec(long minute){
|
//如果传入的分钟是0,默认24小时
|
if (0 == minute) {
|
return "0分钟";
|
}
|
//如果分钟小于60,默认返回分钟
|
if (0 < minute && minute < 60) {
|
return minute + "分钟";
|
}
|
//如果分钟小于24小时(1440分钟),返回小时和分钟
|
if (60 <= minute && minute < 1440) {
|
|
if (minute % 60 == 0) {
|
long h = minute / 60;
|
return h + "小时";
|
} else {
|
long h = minute / 60;
|
long m = minute % 60;
|
return h + "小时" + m + "分钟";
|
}
|
|
}
|
//如果分钟大于1天
|
if (minute >= 1440) {
|
|
long d = minute / 60 / 24;
|
long h = minute / 60 % 24;
|
long m = minute % 60;
|
String s1 = null;
|
if (d > 0) {
|
s1 = d + "天";
|
}
|
//h如果计算大于等于1再展示,否则只展示天和分钟
|
if (h >= 1) {
|
s1 += h + "小时";
|
}
|
if (m > 0) {
|
s1 += m + "分钟";
|
}
|
|
return s1;
|
}
|
return null;
|
}
|
|
public static void main(String[] args) {
|
// System.out.println(millisToDayHrMinSec(1450));
|
}
|
|
}
|