java 时间处理工具类

/**

  • 格式化日期

  • @param date 需要格式化的 日期对象

  • @param pattern 日期样式

*/

public static String formatDate( Date date ) {

return formatDate( date, PATTERN_LONG );

}

/**

  • 格式化日期

  • @param day 相对当前时间的日期偏移,-1:日期向前偏移一天/1:日期向后偏移一天

  • @param pattern 日期样式

*/

public static String formatDate( int day, String pattern ) {

Calendar c = Calendar.getInstance();

c.add( Calendar.DAY_OF_MONTH, day );

return formatDate( c.getTime(), pattern );

}

/**

  • 计算相对偏移日期午夜的秒数

  • @param day 相对当前时间的日期偏移,-1:日期向前偏移一天/1:日期向后偏移一天

*/

public static int getExpiration( int day ) {

Calendar c = Calendar.getInstance();

long midnight = c.getTimeInMillis();

c.set( Calendar.HOUR_OF_DAY, 0 );

c.set( Calendar.MINUTE, 0 );

c.set( Calendar.SECOND, 0 );

c.set( Calendar.MILLISECOND, 0 );

c.add( Calendar.DAY_OF_MONTH, day );

return ( int )( ( c.getTimeInMillis() - midnight ) / 1000 );

}

/**

  • 返回日期年月日整型,如20140318

*/

public static int getYearMonthDay( Calendar calendar ) {

return calendar.get( Calendar.YEAR ) * 10000

  • ( calendar.get( Calendar.MONTH ) + 1 ) * 100

  • calendar.get( Calendar.DATE );

}

/**

  • 获取日期的年期,如201401, addPeriodCount月份偏移量

*/

public static int getYearPeriod( Date date, int addPeriodCount ) {

Calendar calendar = Calendar.getInstance();

calendar.setTime( date );

calendar.add( Calendar.MONTH, addPeriodCount );

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

int m = calendar.get( Calendar.MONTH ) + 1;

return y * 100 + m;

}

/**

  • 匹配字符串首次出现的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 );

最后

权威指南-第一本Docker书

引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

image

image

image

image

关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

[外链图片转存中…(img-obCYMLV9-1714315462493)]

[外链图片转存中…(img-FrxoyUke-1714315462493)]

[外链图片转存中…(img-pVhncAIQ-1714315462493)]

[外链图片转存中…(img-YLodG1Sd-1714315462494)]

关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值