/**
-
格式化日期
-
@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个章节的知识。
关于阿里内部都在强烈推荐使用的“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书》,看完之后两个字形容,爱了爱了!