java中的时间计算和格式处理方法

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
//一天秒数

public final static long MILLISECONDS_OF_DAY = 1000 * 60 * 60 * 24;

public final static long MINUTES_OF_DAY = 1000 * 60 * 60 * 24;

public final static int days[] = {31,29,31,30,31,30,31,31,30,31,30,31};


public final static int WEEK_LENGTH=7;

public final static int YEAR_LENGTH=12;

public final static int NULL_DATE = 19000101;

public final static String NULLDATE="1900-01-01";


public final static int DATETIME_LENGTH = 14;

public final static int DATE_LENGTH = 8;

public final static int TIME_LENGTH = 6;

/**

* 将YYYY-MM-DD HH:NN:SS类型的字符串转化为Date类型

* @param date

* @return Date类型

* @throws ParseException 

*/

public static Date parse(String date) throws ParseException {

boolean isDate = date.indexOf('-') > 0;

boolean isTime = date.indexOf(':') > 0;



if (isDate && isTime) { //日期时间

SimpleDateFormat dateTimeF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return dateTimeF.parse(date);

} else if (isDate) {

SimpleDateFormat dateF = new SimpleDateFormat("yyyy-MM-dd");

return dateF.parse(date);

} else if (isTime) {

SimpleDateFormat timeF = new SimpleDateFormat("HH:mm:ss");

return timeF.parse(date);

}

return new Date(0);

}

/**

* 将YYYY-MM-DD HH:NN:SS.SSS类型的字符串转化为Date类型

* @param date

* @return Date类型

* @throws ParseException 

*/

public static Date parseMinSec(String date) throws ParseException {

boolean isDate = date.indexOf('-') > 0;

boolean isTime = date.indexOf(':') > 0;



if (isDate && isTime) { //日期时间

SimpleDateFormat dateTimeF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

return dateTimeF.parse(date);

} else if (isDate) {

SimpleDateFormat dateF = new SimpleDateFormat("yyyy-MM-dd");

return dateF.parse(date);

} else if (isTime) {

SimpleDateFormat timeF = new SimpleDateFormat("HH:mm:ss.SSS");

return timeF.parse(date);

}

return new Date(0);

}

/**

* 转化为整型

* @param dateTime

* @return 整型的日期值

* @throws ParseException

*/

public static int toInteger(String dateTime)throws ParseException {

Calendar cal = Calendar.getInstance();

cal.setTime(parse(dateTime));

return cal.get(Calendar.YEAR) * 10000

+ (cal.get(Calendar.MONTH)+1) * 100 

+ cal.get(Calendar.DAY_OF_MONTH);
 

}


public static String mulFreq(String freq, int muls){
 

int num = Integer.parseInt(freq.substring(0, freq.length() - 1));

return Integer.toString(num) + freq.substring(freq.length() - 1, 1);

}


public static int toInteger(Date dateTime) {

Calendar cal = Calendar.getInstance();

cal.setTime(dateTime);

return cal.get(Calendar.YEAR) * 10000

+ (cal.get(Calendar.MONTH)+1) * 100 

+ cal.get(Calendar.DAY_OF_MONTH);
 

}

/**

* 返回某一频率下的两个日期间的次数

* @param start

* @param end

* @param freq

* @return int 次数

* @throws ParseException

*/

public static int indexOf(String start, String end, String freq) throws ParseException{

Date date1 = GenernalDate.parse(start);

Date date2 = GenernalDate.parse(end);

for(int i = 0;;i++) {
 

if( date1.getTime() >= date2.getTime() ) {

return i;

}

date1 = GenernalDate.add(date1, freq);

}

}

/**

* 返回两个日期相差年数

* @param start

* @param end

* @return 相差年数

* @throws ParseException

*/

public static int yearsOf(String start, String end)throws ParseException{

Calendar cal1 = Calendar.getInstance();

cal1.setTime(parse(start));
 

Calendar cal2 = Calendar.getInstance();

cal2.setTime(parse(end));
 

return cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR) + 1;

}



/**

* 从日期时间字符串拆出日期

* @param dateTime

* @return 日期

* @throws ParseException

*/

public static String splitDate(String dateTime) throws ParseException {
 

return formatDate(parse(dateTime));

}



/**

* 从日期时间字符串拆出时间

* @param dateTime

* @return 时间

* @throws ParseException

*/

public static String splitTime(String dateTime) throws ParseException {

return formatTime(parse(dateTime));

}



/**

* 返回日期

* @param date

* @return Date

* @throws ParseException

*/

public static Date parseDate(String date) throws ParseException {

SimpleDateFormat dateF = new SimpleDateFormat("yyyy-MM-dd");

return dateF.parse(date);

}


public static Calendar parseCalendar(String date){

Calendar cal = Calendar.getInstance();

SimpleDateFormat dateF = new SimpleDateFormat("yyyy-MM-dd");

try{

cal.setTime(dateF.parse(date));

}catch(ParseException e){

throw new RuntimeException(e);

}

return cal;

}


/**

* 返回时间

* @param time

* @return Date 时间

* @throws ParseException

*/

public static Date parseTime(String time) throws ParseException {

SimpleDateFormat timeF = new SimpleDateFormat("HH:mm:ss");

return timeF.parse(time);

}



/**

* 两个日期相减,参数为String型

* @param startDate

* @param endDate

* @return int

*/

public static int offset(String startDate, String endDate) throws ParseException {

return offset(parse(startDate), parse(endDate));

}



/**

* 两个日期相减,参数为Date型

* @param startDate

* @param endDate

* @return int 日期差

*/

public static int offset(Date startDate, Date endDate) {

return (int) ((endDate.getTime() - startDate.getTime()) / MINUTES_OF_DAY);

}


/**

* 两个日期相减,参数为Date型

* @param startDate

* @param endDate

* @return int 日期差

*/

public static int offsetDay(Date startDate, Date endDate)throws ParseException {

  return offset(parse(formatDate(startDate)),parse(formatDate(endDate)));

}



/**

* 日期加天数

* @return 日期加天数后的Date日期

*/

public static Date addDays(Date date, int days) {

return new Date(date.getTime() + days * MINUTES_OF_DAY);

}



/**

* 日期加天数

* @param date

* @param days

* @return 日期加天数后的String日期

*/

public static String addDays(String date, int days) throws ParseException {

return formatDate(addDays(parse(date), days));

}



/**

* +月

* @param date 起始日期

* @param months 月数

* @return 日期加月数后的Date日期

* @throws ParseException

*/

public static Date addMonths(Date date, int months) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.MONTH, months);

return cal.getTime();

}



/**

* +月

* @param date 起始日期

* @param months 月数

* @return 日期加月数后的String日期

* @throws ParseException

*/

public static String addMonths(String date, int months) throws ParseException {

return formatDate(addMonths(parseDate(date), months));

}



/**

* +年

* @param date 起始日期

* @param years 年数

* @return 日期加年数后的Date日期

* @throws ParseException

*/

public static Date addYears(Date date, int years) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.YEAR, years);

return cal.getTime();



}



/**

* +年

* @param date 起始日期

* @param years 年数

* @return 日期加年数后的String日期

* @throws ParseException

*/

public static String addYears(String date, int years) throws ParseException {

return formatDate(addYears(parseDate(date), years));



}



/**

* +秒

* @param date 起始日期

* @param second 秒

* @return 日期加秒数后的Date日期

* @throws ParseException

*/

public static Date addSecond(Date date, int second) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.SECOND, second);

return cal.getTime();



}



public static Date addHour(Date date, int hours) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.HOUR, hours);

return cal.getTime();

}




public static Date addMinutes(Date date, int minutes) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.MINUTE, minutes);

return cal.getTime();

}

/**

* + 表达式 d,w,m,y

* @param date 起始日期

* @param exp 表达式类型:d/D 天; w/W 周; m/M 月; y/Y 年

* @param mul 乘数,一般是第mul期,如exp:7d,mul:2,则为加7*2d 

* @param monthEnd 月末是否对齐

* @return 计算后的Date日期

* @throws ParseException 

* @throws NumberFormatException 

*/

public static Date add(Date date,String exp, int mul, boolean monthEnd){

if( exp.length() <= 1 ) {

throw new RuntimeException("payFreq is null!");

}


int len = exp.length();

int num = Integer.parseInt(exp.substring(0, len - 1)) * mul;

Date ndate = null;

switch (exp.charAt(len - 1)) {

case 'd':

case 'D':

return addDays(date, num);

case 'w':

case 'W':

return addDays(date, num * 7);

case 'm':

case 'M': 


ndate =  addMonths(date, num);

break;

case 'y':

case 'Y':

ndate =   addYears(date, num);

break;

}
 

if( monthEnd && ndate != null  ) {//&& isMonthEnd(date)

return getMonthEnd(ndate);

} else {

return ndate;

}
 

}


/**

* 

* @param date

* @param j

* @return Date

*/

public static Date rollMonth(Date date ,int j){

Date tmp = addMonths(date, j - 1);

return getMonthEnd(tmp);

}

/**

* 是否月末

* @param date

* @return boolean 是否月末

*/

public static boolean isMonthEnd(Date date) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(date);
 

if( cal.get(GregorianCalendar.DAY_OF_MONTH) == 

cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH)){

return true;

}

return false;

}

/**

* 返回日期的月末时间

* @param date

* @return Date 

*/

public static Date getMonthEnd(Date date) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(date);

cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH)); 


return cal.getTime();
 

}


/**

* 返回日期的月初时间

* @param date

* @return Date 

*/

public static Date getMonthStart(Date date) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(date);

cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(GregorianCalendar.DAY_OF_MONTH)); 


return cal.getTime();
 

}

/**

* 比较表达式的大小

* @param exp1

* @param exp2

* @return 表达式(折算成天)相减后的值

*/

public static int compare(String exp1, String exp2){

return getDays(exp1) - getDays(exp2);

}


private static int getDays(String exp) {

int len = exp.length();

int num = Integer.parseInt(exp.substring(0, len - 1));

int days = 0;

char c = exp.charAt(len - 1);

if( c == 'd' || c == 'D'){

days = num;

} else if( c == 'w' || c == 'W'){

days = num * 7;

}else if( c == 'm' || c == 'M'){

days = num * 30;

}else if( c == 'y' || c == 'Y'){

days = num * 365;

}

return days;

}

public static Date add(Date date, String exp) {

return add(date,exp,1, false);

}




/**

* +表达式,d,w,m,y

* @param date

* @param exp

* @return String类型的日期

* @throws ParseException

*/

public static String add(String date, String exp) throws ParseException {

return formatDate(add(parseDate(date), exp));

}



/** 

* 日期+时间

* @param date

* @param time

* @return 包含日期、时间的Date日期

*/

public static Date add(Date date, Date time) {

Calendar cal0 = Calendar.getInstance();

Calendar cal1 = Calendar.getInstance();

cal0.setTime(date);

cal1.setTime(time);

cal0.set(Calendar.HOUR_OF_DAY, cal1.get(Calendar.HOUR_OF_DAY));

cal0.set(Calendar.MINUTE, cal1.get(Calendar.MINUTE));

cal0.set(Calendar.SECOND, cal1.get(Calendar.SECOND));

return cal0.getTime();

}



/**

* String日期+时间

* @param date 日期

* @param time 时间

* @return Date类型的日期

* @throws ParseException

*/

public static Date addTime(String date, String time) throws ParseException {

return add(parseDate(date), parseTime(time));

}



/**

* 返回当前日期时间

* @return 当前日期时间的Date类型

*/

public static Date getDateTime() {

return Calendar.getInstance().getTime();

}



/**

* 返回String型当前时间

* @return 当前日期时间的String类型

*/

public static String getDateTimeStr() {

return format(getDateTime());

}



/**

* 返回String型当前日期的长类型:日期、时间

* @return 返回String型当前日期的长类型:日期、时间

* @throws ParseException

*/

public static String getLongDateTimeStr() {

return formatDateTime(getDateTime());

}



/**

* 返回给定日期的日期时间

* @param date

* @return 给定日期的日期、当前时间Date类型的值

*/

public static Date getDateTime(String date) throws ParseException {

return add(parse(date), getTime());

}



/**

* 返回String型给定日期的日期时间

* @param date

* @return String类型的日期值

* @throws ParseException

*/

public static String getDateTimeStr(String date) throws ParseException {

return format(getDateTime(date));

}

/**

* 返回String型给定日期的日期时间用于DB2的日期

* @param date

* @return String类型的日期值1970 00:00:00

* @throws ParseException

*/

public static String getDateTimeForTimeStamp(String date) throws ParseException {

return format(getDateTime(date))+" 00:00:00";

}

/**

* 返回String型给定日期的日期时间用于DB2的日期

* @param date

* @return String类型的日期值1970 00:00:00

* @throws ParseException

*/

public static String getDateForTimeStamp(String date) throws ParseException {

return format(parse(date))+" 00:00:00";

}





/**

* 返回当前日期

* @return 当前日期Date类型

*/

public static Date getDate() {

Calendar cal = Calendar.getInstance();

cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE));

return new Date(cal.getTimeInMillis());

}



/**

* 返回String当前日期

* @return 当前日期String类型

*/

public static String getDateStr() {

return formatDate(getDate());

}



/**

* 返回当前时间

* @return 当前时间Date类型

*/

public static Date getTime() {

Calendar cal = Calendar.getInstance();

cal.set(1970, 0, 1, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal

.get(Calendar.SECOND));

return new Date(cal.getTimeInMillis());

}



/**

* 返回String当前时间

* @return 当前时间String类型

*/

public static String getTimeStr() {

return formatTime(getTime());

}



/**

* 返回默认格式的字符串日期

* @param date

* @return yyyy-MM-dd格式的字符串日期

*/

public static String formatDate(Date date) {
 

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyy-MM-dd");

return sf.format(date);

}



/**

* 返回默认格式的字符串时间

* @param time

* @return HH:mm:ss格式的字符串时间

*/

public static String formatTime(Date time) {

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getTimeInstance();

sf.applyPattern("HH:mm:ss");

return sf.format(time);

}



/**

* 返回默认格式的字符串日期 时间

* @param date

* @return yyyy-MM-dd HH:mm:ss格式的字符串日期 时间

*/

public static String formatDateTime(Date date){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyy-MM-dd HH:mm:ss");

return sf.format(date);

}

/**

* 返回字符串日期

* @param date

* @return yyyy-MM-dd格式的字符串日期

*/

public static String format(Date date) {

SimpleDateFormat dateF = new SimpleDateFormat("yyyy-MM-dd");

return dateF.format(date);

}

/**

* 返回默认格式的字符串日期 时间

* @param date

* @return yyyy-MM-dd HH:mm:ss SSS格式的字符串日期 时间

*/

public static String formatDateTimeMillisByDate(Date date){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyy-MM-dd HH:mm:ss.SSS");

return sf.format(date);

}

/**

* 返回默认格式的字符串日期 时间

* @return yyyy-MM-dd HH:mm:ss SSS格式的字符串日期 时间

*/

public static String formatDateTimeMillis(){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyy-MM-dd HH:mm:ss SSS");

return sf.format(getDateTime());

}

/**

* 返回默认格式的字符串日期 时间

* @return yyyyMMddHHmmssSSS格式的字符串日期 时间

*/

public static String formatDateTimeMillisString(){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyyMMddHHmmssSSS");

return sf.format(getDateTime());

}

/**

* 返回默认格式的字符串日期 时间

*

* @return yyyy-MM-dd HH:mm:ss 格式的字符串日期 时间

*/

public static String formatDateTime(){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyy-MM-dd HH:mm:ss");

return sf.format(getDateTime());

}

/**

* 返回默认格式的字符串日期

* 

* @return yyyyMMdd格式的字符串日期

*/

public static String formatDate(){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyyMMdd");

return sf.format(getDateTime());

}

/**

* 返回默认格式的字符串时间

* 

* @return HHmmss格式的字符串时间

*/

public static String formatTime(){

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("HHmmss");

return sf.format(getDateTime());

}


/**

* 返回年

* @param date

* @return 年

* @throws ParseException

*/

public static int getYear(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

return cal.get(Calendar.YEAR);

}



/**

* 返回年

* @param date

* @return 年

* @throws ParseException

*/

public static int getYear(String date) throws ParseException {

return getYear(parseDate(date));

}



/**

* 判断是否为闰年

* @param year

* @return boolean

*/

public static boolean isLeapYear(int year) {

GregorianCalendar cal = new GregorianCalendar();

return cal.isLeapYear(year);

}



/**

* 返回月

* @param date

* @return 月

* @throws ParseException

*/

public static int getMonth(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

return cal.get(Calendar.MONTH);

}



/**

* 返回月

* @param date

* @return 月

* @throws ParseException

*/

public static int getMonth(String date) throws ParseException {

return getMonth(parseDate(date));

}



/**

* 返回日

* @param date

* @return 日

* @throws ParseException

*/

public static int getDay(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

return cal.get(Calendar.DATE);

}



/**

* 返回日

* @param date

* @return 日

* @throws ParseException

*/

public static int getDay(String date) throws ParseException {

return getDay(parseDate(date));

}



/**

* 比较两个时间大小

* @param date1

* @param date2

* @return true date1>=date2; false date1 < date2

* @throws ParseException

*/

public static boolean greatEqual(String date1, String date2) throws ParseException {

return parseDate(date1).getTime() >= parseDate(date2).getTime();

}

/**

* 比较两个时间是否相等

* @param date1

* @param date2

* @return true date1>=date2; false date1 < date2

* @throws ParseException

*/

public static boolean equal(String date1, String date2) throws ParseException {

return parseDate(date1).getTime() == parseDate(date2).getTime();

}

public static boolean great(String date1, String date2) throws ParseException {

return parseDate(date1).getTime() > parseDate(date2).getTime();

}



/**

* 比较两个时间大小(无日期)

* @param date1

* @param date2

* @return true date1>=date2; false date1 < date2

* @throws ParseException

*/

public static boolean greatTime(String date1, String date2) throws ParseException {

return parseTime(date1).getTime() >= parseTime(date2).getTime();

}

/**

* 比较两个时间大小

* @param date1

* @param date2

* @return true date1<date2; false date1 >= date2

* @throws ParseException

*/

public static boolean less(String date1, String date2) throws ParseException {

return parseDate(date1).getTime() < parseDate(date2).getTime();

}


public static boolean isZero(String date) throws ParseException{
 

if(date==null || date.trim().equals(""))return true;

return parseDate(date).getTime() <= parseDate("1901-1-1").getTime();


}


public static int getDayOfWeek(Date date){

Calendar cal = Calendar.getInstance();

cal.setTime(date);

return cal.get(Calendar.DAY_OF_WEEK);

}


private static String type;

public static void setType(String type) {

GenernalDate.type = type;

}

public static Date parseDateNorm(String date) throws ParseException {

//long offsec=(Long.valueOf(date)-25569)*3600*24*1000;

//SimpleDateFormat dateF = (SimpleDateFormat)SimpleDateFormat.getDateInstance();

//dateF.format(Long.valueOf(date));

//SimpleDateFormat dateff= new SimpleDateFormat("yyyy-MM-dd");

SimpleDateFormat dateff= new SimpleDateFormat("yyyy-MM-dd");

return dateff.parse(date);

//return d;

}


public static Date formatDateTimeToDate(Date date) throws ParseException {
 

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

sf.applyPattern("yyyy-MM-dd HH:mm:ss");

String temp=sf.format(date+" 0:00:00");

return sf.parse(temp);

}

/**

* 判断时间date1是否在时间date2之前,不能用于日期

*/

public static boolean isDateBefore(String date1, String date2) {


if(date2.equals("")){


return false;


}else if(date1.equals("")){


return true;


}

try {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return df.parse(date1).before(df.parse(date2));

} catch (ParseException e) {

return false;

}

}

 

/**

* 日期转换

* @param date 三种格式  20100421153055|20100421|153055

* @return

* @throws ParseException

* @throws ApplicationException

*/

public static Date parse(long date)throws ApplicationException{

String dateStr = String.valueOf(date);


boolean isDate = false,isTime = false,isDateTime = false;

if(dateStr.length()==DATETIME_LENGTH){

isDateTime = true;

}else if(dateStr.length()==DATE_LENGTH){

isDate = true;

}else if(dateStr.length()==TIME_LENGTH){

isTime = true;

}else {

throw new ApplicationException("Date format is not correct["+dateStr+"]");

}

SimpleDateFormat sf = (SimpleDateFormat) DateFormat.getDateInstance();

try{

if (isDateTime) { //日期时间

sf.applyPattern("yyyyMMddHHmmss");

return sf.parse(dateStr);

} else if (isDate) {

sf.applyPattern("yyyyMMdd");

return sf.parse(dateStr);

} else if (isTime) {

sf.applyPattern("HHmmss");

return sf.parse(dateStr);

}

}catch(ParseException pe){

throw new ApplicationException(pe.getMessage());

}


return new Date(0);

}

/**

* Date类型(日期) 转换为 int 类型

* @param dateTime

* @return long 20100421132630

*/

public static int getIntegerDate(Date dateTime){

SimpleDateFormat sf = (SimpleDateFormat)DateFormat.getInstance();

sf.applyPattern("yyyyMMdd");

return Integer.parseInt(sf.format(dateTime));

}


/**

* 返回日期

* @param date

* @return Date yyyyMMdd

* @throws ParseException

*/

public static Date parseDate(Date date) throws ParseException {

SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMdd");

return dateF.parse(String.valueOf(date));

}


/**

* 读取当前的日期+时间

* return long 20100421132630

*/

public static long getNumericDateTime(){

SimpleDateFormat sf = (SimpleDateFormat)DateFormat.getInstance();

sf.applyPattern("yyyyMMddHHmmss");

String dateTime = sf.format(Calendar.getInstance().getTime());

return Long.parseLong(dateTime);

}

 }
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java

“java中的时间计算和格式处理方法” 的相关文章

#yyds干货盘点#学习笔记,Linux 安全强化 SSH 远程连接的 8 种方法

SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。尤其是如果你使用的是公共 IP 地址,则xx root 密码要容易...

spark本地安装教程

一、 VMware虚拟机的安装 简介:VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、LINUX等系统,本章主要介绍该软件的安装。 注意事项:这一步基本没什么难点,傻瓜式跟着教程下一步即可,唯一需要注意的点就是第5步中安装路径不要包含中文,可能会...

一级必杀,防不胜防的漏洞,WEB安全基础入门—文件上传漏洞

欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: 《WEB安全基础-服务器端漏洞》 《WEB安全基础-客户端漏洞》 《WEB安全高级-综合利用》 知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路! 欢迎关注订阅专栏!...

QtCreator相关设置

智能提示: Tools->options->Environment->key Board->Complete This:Ctrl+J 悬浮看内存值 Tools->options->Debugger->General-...

Codeforces Beta Round #74 (Div. 2) / 90B African Crossword (模拟)

B. African Crossword http://codeforces.com/problemset/problem/90%2FB time limit per test memory limit per test inp...

Solidity基础语法、关键字

目录 一、版本指令pragma solidity ^x.x.xx;二、合约创建contract xxx { ... }三、状态变量四、无符号整数uint五、数学运算加减乘除、乘方六、结构体struct七、数组静态数组动态数组公共数组 八、定义函数九、使用结构体和数组十、私有 / 公...