# timeExpr **Repository Path**: input4hua/timeExpr ## Basic Information - **Project Name**: timeExpr - **Description**: 解析字符串中的时间表达式,并替换 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # timeExpr #### 介绍 解析字符串中的时间表达式,并替换 #### 实现细节 - 定义各个表达式处理节点,每个表达式解析节点通过正则表达式解析替换。 - 通过责任链模式,将各个解析节点连接起来 - 并通过暴露单例的责任链上的头部处理客户端,接收字符串入参,最后输出解析替换后的字符串 - 如对责任链模式不清楚,可参考我的博文:[【设计模式】09-责任链模式](https://blog.csdn.net/fengyu6623/article/details/88910692) #### 使用说明 *现支持如下表达式替换* 1.**${TODAY}** 转换为:yyyy-MM-dd ,例如2019-05-13 - **${TODAY+n}** >+n天, n需为数字,例如今天是2019-05-13 ${TODAY+1} 将会替换为:2019-05-14 - **${TODAY-n}** >-n天, n需为数字,例如今天是2019-05-13 ${TODAY-1} 将会替换为:2019-05-12
2.**${hour}** 转换为:HH ,例如17 - **${hour+n}** >+n小时, n需为数字,例如当前时间是17时 ${hour+1} 将会替换为:18 - **${hour-n}** >-n小时, n需为数字,例如当前时间是17时 ${hour-1} 将会替换为:16
3.**${TODAY_HOUR}** 转换为:yyyyMMddHH ,例如2019051317 - **${TODAY_HOUR+m,n}** >+m天+n小时, m、n需为数字,中间用','分隔, n可以不赋值,即可以${TODAY_HOUR+m}只偏移日期 >例如当前时间是2019051317 ${TODAY_HOUR+2,1} 将会替换为:2019051518 >例如当前时间是2019051317 ${TODAY_HOUR+1} 将会替换为:2019051417 - **${TODAY_HOUR-m,n}** >-m天-n小时, m、n需为数字,中间用','分隔, n可以不赋值,即可以${TODAY_HOUR+m}只偏移日期 >例如当前时间是2019051317 ${TODAY_HOUR-2,1} 将会替换为:2019051116 >例如当前时间是2019051317 ${TODAY_HOUR-1} 将会替换为:2019051217 4.**${today}** 转换为:yyyyMMdd ,例如20190513 - **${today+n}** >+n天, n需为数字,例如今天是20190513 ${today+1} 将会替换为:20190514 - **${today-n}** >-n天, n需为数字,例如今天是20190513 ${today-1} 将会替换为:20190512 #### 测试用例 com.input4hua.expr.time.TimeExprTest