首页 > 其他分享 >创建一个日期与字符串之间处理的工具

创建一个日期与字符串之间处理的工具

时间:2023-09-27 18:12:47浏览次数:33  
标签:return String 创建 DateTime 日期 toString time 字符串 replace

package cn.com.maple.utils;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

/**
* @author LiDY
* @desc DateTime处理工具
* @date 2022-01-20 11:25:53
*/
public class DateTimeUtil {

private static transient final Logger logger = LogManager.getLogger(DateTimeUtil.class);

/**
* 把时间转换成整小时时刻时间
* 如:2022-01-20 10:40:52 -> 2022-01-20 10:00:00
* @param time 传入的DateTIme
* @return
*/
public static DateTime getHourDateTime(DateTime time) {
/*DateTime hourDateTime = null;
try {
String yyyyMMddHH = time.toString("yyyyMMddHH");
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHH");
hourDateTime = DateTime.parse(yyyyMMddHH, formatter);
} catch (Exception e) {
logger.error("[ERROR] DateTimeUtil.getHourDateTime(): {}", e.getMessage());
}
return hourDateTime;*/
return new DateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), time.getHourOfDay(), 0, 0);
}

/**
* 把时间转换成整10分钟时刻时间
* 如:2022-01-20 10:42:52 -> 2022-01-20 10:40:00
* @param time 传入的DateTIme
* @return
*/
public static DateTime get10MinuteDateTime(DateTime time) {
return new DateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), time.getHourOfDay(), time.getMinuteOfHour() / 10 * 10, 0);
}

/**
* 把时间转换成整分钟时刻时间
* 如:2022-01-20 10:42:52 -> 2022-01-20 10:42:00
* @param time 传入的DateTIme
* @return
*/
public static DateTime getMinuteDateTime(DateTime time) {
return new DateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), time.getHourOfDay(), time.getMinuteOfHour(), 0);
}

/**
* 把时间转成指定格式的字符串
* @param time 传入的DateTIme
* @param format 格式串,如:yyyyMMddHHmmss
* @return
*/
public static String getTimeStr(DateTime time, String format) {
return time.toString(format);
}

/**
*
* @param timeStr 传入的时间字符串,如 20220120123000
* @param format 与timeStr相匹配的格式 如 yyyyMMddHHmmss
* @return
*/
public static DateTime getDateTimeByFormat(String timeStr, String format) {
DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
return DateTime.parse(timeStr, formatter);
}

/**
* @param sourceStr /YYYYMMDD/YYYYMMDDHHNNSS.VVV
* @param time
* @return
*/
public static String strReplace(String sourceStr, String suffix1, String suffix2,DateTime time) {
String YYYYMMDDHHNNSS = time.toString("yyyyMMddHHmmss");
String YYYYMMDDHHNN = time.toString("yyyyMMddHHmm");
String YYYYMMDDHH = time.toString("yyyyMMddHH");
String YYYYMMDD = time.toString("yyyyMMdd");
String YYYYMM = time.toString("yyyyMM");
String YYYY = time.toString("yyyy");

return sourceStr.replace("YYYYMMDDHHNNSS", YYYYMMDDHHNNSS)
.replace("YYYYMMDDHHNN", YYYYMMDDHHNN)
.replace("YYYYMMDDHH", YYYYMMDDHH)
.replace("YYYYMMDD", YYYYMMDD)
.replace("YYYYMM", YYYYMM)
.replace("YYYY", YYYY)
.replace(suffix1, suffix2);
}

/**
* 日期替换字符串占位符
* @param sourceStr /YYYYMMDD/YYYYMMDDHHNNSS.VVV
*/
public static String strFormatReplace(String sourceStr, String suffix1, String suffix2,DateTime time) {
String YYYY = time.toString("yyyy");
String YY = time.toString("yy");
String MM = time.toString("MM");
String DD = time.toString("dd");
String HH = time.toString("HH");
String NN = time.toString("mm");
String SS = time.toString("ss");

return sourceStr.replace("YYYY", YYYY)
.replace("YY", YY)
.replace("MM", MM)
.replace("DD", DD)
.replace("HH", HH)
.replace("NN", NN)
.replace("SS", SS)
.replace(suffix1, suffix2);
}




}

标签:return,String,创建,DateTime,日期,toString,time,字符串,replace
From: https://www.cnblogs.com/flyingmaple/p/17733335.html

相关文章

  • Linux vi替换字符串
     1.基本的替换 :s/vivian/sky/替换当前行第一个vivian为sky :s/vivian/sky/g替换当前行所有vivian为sky :n,$s/vivian/sky/替换第n行开始到最后一行中每一行的第一个vivian为sky :n,$s/vivian/sky/g替换第n行开始到最后一行中每一行所有vivian为sky......
  • 使用 Spring 3 来创建 RESTful Web Services
    引言RoyFielding是HTTP1.0和1.1标准的主要作者之一,2000年,他在他的博士论文中首次提出了REST。通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTT......
  • ArcGIS Pro 3创建Python环境失败的解决方法
    当使用ArcGISPro的包管理器创建新的Python环境时,遇到以下错误提示,无法成功创建。permissionError:[Errno13]Permissiondenied:'C:\\ProgramFiles\\ArcGIS\\Pro\\bin\\Python\\envs\\arcgispro-py3\\etc\\jupyter\\jupyter_notebook_config.json'解决方法:重启ArcGISPro......
  • 如何在几分钟内创建一个对话机器人?
    随着互联网的发展,人们迫切希望以快速高效的方式获取信息和解决问题,传统的人工客服渐渐地已经无法满足人们的需求。然而,对话机器人(chatbot)的出现可以很好地解决这个痛点。对话机器人是一种人工智能工具,通过模拟对话与用户进行交互。对话机器人可以回答问题、提供信息或执行任务,以......
  • vue,用户可操作权限判断,数据创建人判断
    需求:需要判断登录用户是否有对应的操作权限,有则显示对应的操作入口。判断某物的创建人是否为当前用户,是则可进行删除或修改操作。  调用以下函数。userId为当前登录的用户id;   ......
  • Redis系列 - Redis底层数据结构(简单动态字符串(SDS)、链表、字典、跳跃表、整数集合
    转自:https://blog.csdn.net/u011485472/article/details/109460490Redis系列-Redis底层数据结构(简单动态字符串(SDS)、链表、字典、跳跃表、整数集合、压缩列表)简单动态字符串(simpledynamicstring,SDS)链表字典跳跃表整数集合压缩列表RedisObject在介绍Redis底......
  • #POWERBI_指标监控(第二部分,周期内下降天数及日期明细)
    在指标监控的第一部分文章中,我们已经讲了,如何用DAX去查询一段周期内连续下降或者上升指标。需要复习的同学可以点击下方链接:https://www.cnblogs.com/simone331/p/17730677.html根据学友上篇文章的反馈,今天,我们来拓展学习一下,如何计算一个周期内(非连续),下降或上升天数统计,以及......
  • Kafka - 消费者会创建多少个 Socket 连接?
    相关知识的wikihttps://www.processon.com/mindmap/5ef999275653bb2925bc8a13 问题 假设有个Kafka集群由2台Broker组成,有个主题有5个分区,当一个消费该主题的消费者程序启动时,你认为该程序会创建多少个Socket连接?为什么?答案整个生命周期里会建立4个连接,进入稳定......
  • MYSQL 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:未将对
    一:中文提示:连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:未将对象引用设置到对象的实例。DbType="MySql";ConfigId="".EnglishMessage:Connectionopenerror.未将对象引用设置到对象的实例。DbType="MySql";ConfigId="" 解决方法:在连接字......
  • php 提取字符串中所有的图片链接 ,不区分单双引号
    <?php$str='这是一段包含图片链接的字符串,其中包括<imgsrc="https://example.com/image1.jpg">和<imgsrc=\'https://example.com/image2.jpg\'>。';preg_match_all('/<img\s+src=(["\'])(.*?)\1/',$str,$match......