java 时间处理工具类

/**

  • 匹配字符串首次出现的yyyy-mm-dd hh:mm:ss格式的时间

  • @param str

  • @return

*/

public static String getTime( String str ) {

String reg = “\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}”;

Pattern MobilePhonePattern = Pattern.compile( reg );

Matcher m = MobilePhonePattern.matcher( str );

while( m.find() ) {

return m.group().trim();

}

return null;

}

/**

  • 把字符串按格式转换成Date对象

  • @param text

  • @param pattern

  • @return

*/

public static Date parse( String text, String pattern ) {

SimpleDateFormat format = new SimpleDateFormat( pattern );

try {

return format.parse( text );

} catch( ParseException e ) {

return null;

}

}

/**

  • 默认用yyyy-MM-dd HH:mm:ss的格式进行转换

  • @param text

  • @return

*/

public static Date parse( String text ) {

SimpleDateFormat format = new SimpleDateFormat( PATTERN_LONG );

try {

return format.parse( text );

} catch( ParseException e ) {

return null;

}

}

/**

  • 获取 当前时间

  • @return

*/

@Deprecated

public static Date getNow() {

return DATE_LOCAL.get().getTime();

}

/**

  • 获取当前时间

  • @return

*/

public static Date now() {

return new Date();

}

/**

  • 判断日期是否为今天

  • @param date

  • @return

*/

public static boolean isToday( Date date ) {

if( date == null ) {

return false;

}

Date now = getNow();

return formatDate( now, PATTERN_B ).equals( formatDate( date, PATTERN_B ) );

}

/**

  • 判断日期是否为昨天

  • @param date

  • @return

*/

public static boolean isYesterday( Date date ) {

if( date == null ) {

return false;

}

Date now = getNow();

return formatDate( DateUtils.addDays( now, -1 ), PATTERN_B ).equals( formatDate( date, PATTERN_B ) );

}

/**

  • 计算两个日期之间相差日期天数(如:2014-10-09与2014-10-10相差一天)

  • @param sd

  • @param ed

*/

public static int diffDateDay( Date sd, Date ed ) {

Calendar calendar = Calendar.getInstance();

calendar.setTime( sd );

int sDay = calendar.get( Calendar.DAY_OF_YEAR );

int sYear = calendar.get( Calendar.YEAR );

calendar.setTime( ed );

int eDay = calendar.get( Calendar.DAY_OF_YEAR );

int eYear = calendar.get( Calendar.YEAR );

// 每年的天数

int oneYearDays = 365;

if( ( sYear % 4 == 0 && sYear % 100 != 0 ) || sYear % 400 == 0 ) {

// 润年366天

oneYearDays = 366;

}

return ( eYear - sYear ) * oneYearDays + eDay - sDay;

}

public static Date toLocalDate( Date GMT ) throws ParseException {

String localDateStr = formatDate( GMT );

return parse( localDateStr );

}

public static Date getStartTime( Date date ) {

Calendar today = Calendar.getInstance();

today.setTime( date );

today.set( Calendar.HOUR_OF_DAY, 0 );

today.set( Calendar.MINUTE, 0 );

today.set( Calendar.SECOND, 0 );

today.set( Calendar.MILLISECOND, 0 );

return today.getTime();

}

public static Date getEndTime( Date date ) {

Calendar today = Calendar.getInstance();

today.setTime( date );

today.set( Calendar.HOUR_OF_DAY, 23 );

today.set( Calendar.MINUTE, 59 );

today.set( Calendar.SECOND, 59 );

today.set( Calendar.MILLISECOND, 999 );

return today.getTime();

}

public static Date getDayStartTime( int offset ) {

Calendar today = Calendar.getInstance();

today.add( Calendar.DAY_OF_MONTH, offset );

today.set( Calendar.HOUR_OF_DAY, 0 );

today.set( Calendar.MINUTE, 0 );

today.set( Calendar.SECOND, 0 );

today.set( Calendar.MILLISECOND, 0 );

return today.getTime();

}

public static Date getMonthStartTime( int offset ) {

Calendar today = Calendar.getInstance();

today.add( Calendar.MONTH, offset );

today.set( Calendar.HOUR_OF_DAY, 0 );

today.set( Calendar.MINUTE, 0 );

today.set( Calendar.SECOND, 0 );

today.set( Calendar.MILLISECOND, 0 );

return today.getTime();

}

public static Date getDayEndTime( int offset ) {

Calendar todayEnd = Calendar.getInstance();

todayEnd.add( Calendar.DAY_OF_MONTH, offset );

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 getHourTime( long timestamp ) {

Calendar cal = Calendar.getInstance();

cal.setTime( new Date( timestamp ) );

cal.set( Calendar.MINUTE, 0 );

cal.set( Calendar.SECOND, 0 );

cal.set( Calendar.MILLISECOND, 0 );

return cal.getTime();

}

public static Date getTodayHourDate( int hour ) {

Calendar todayEnd = Calendar.getInstance();

todayEnd.set( Calendar.HOUR_OF_DAY, hour );

todayEnd.set( Calendar.MINUTE, 0 );

读者福利

秋招我借这份PDF的复习思路,收获美团,小米,京东等Java岗offer

更多笔记分享

秋招我借这份PDF的复习思路,收获美团,小米,京东等Java岗offer

加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0

public static Date getTodayHourDate( int hour ) {

Calendar todayEnd = Calendar.getInstance();

todayEnd.set( Calendar.HOUR_OF_DAY, hour );

todayEnd.set( Calendar.MINUTE, 0 );

读者福利

[外链图片转存中…(img-fIGK7XPj-1725641514788)]

更多笔记分享

[外链图片转存中…(img-YqU1tpys-1725641514788)]

加入社区:https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值