日期工具类

Python获取当前的系统时间并转化为16进制数据 采用Python创建一个UTC日期时间对象,分别将时、分、秒、毫秒等转换为16进制字符串。# 分别将年、月、日等转换为16进制字符串。 阅读详情
	/**
	 * 返回当前日期的16进制
	 */
	public static String getDateHex() {
		StringBuffer sb = new StringBuffer();
		Date date = new Date();
		SimpleDateFormat formatter = new SimpleDateFormat("yy-MM-dd-HH-mm-ss");
		String nowDate[] = formatter.format(date).split("-");

		for (int i = 0; i < nowDate.length; i++) {
			int da = Integer.parseInt(nowDate[i]);
			String hex = Integer.toHexString(da & 0xFF);
			if (hex.length() == 1) {
				hex = '0' + hex;
			}
			sb.append(hex);
		}
		return sb.toString();
	}
/**
	 * 获得两个时间段之内的所有日期小时:例如传参数:"2018-12-06 01"和"2018-12-06 23", 返回结果:[2018-12-06 01,
	 * 2018-12-06 02, 2018-12-06 03, 2018-12-06 04, ......, 2018-12-06 23]
	 * 
	 * @param beginDate
	 * @param endDate
	 * @return
	 * @throws ParseException
	 * @throws                java.text.ParseException
	 */
	public static List<String> getHoursBetweenTwoDate(String beginDate, String endDate)
			throws ParseException, java.text.ParseException {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
		List<String> lDate = new ArrayList<String>();
		lDate.add(beginDate);// 把开始时间加入集合
		Calendar cal = Calendar.getInstance();
		// 使用给定的 Date 设置此 Calendar 的时间
		cal.setTime(sdf.parse(beginDate));
		boolean bContinue = true;
		while (bContinue) {
			// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
			cal.add(Calendar.HOUR, 1);
			// 测试此日期是否在指定日期之后
			if (sdf.parse(endDate).after(cal.getTime())) {
				lDate.add(sdf.format(cal.getTime()));
			} else {
				break;
			}
		}
		lDate.add(endDate);// 把结束时间加入集合
		return lDate;
	}
/**
	 * 判断开始时间,是否再结束时间之后,是,返回true;否返回false
	 * 
	 * @param startTime:开始时间;endTime:结束时间
	 * @return true or false
	 */
	public static boolean compareDates(String startTime, String endTime) {
		try {

			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Date date1 = sdf.parse(startTime);
			Date date2 = sdf.parse(endTime);

			if (date1.after(date2)) {
				return true;
			}

		} catch (ParseException ex) {
			ex.printStackTrace();
		}
		return false;
	}
//获取固定分钟后的时间
public static String getFiveMinAfter(String time, int minute) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = null;
		try {
			date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Calendar now = Calendar.getInstance();
		now.setTime(date);
		now.add(Calendar.MINUTE, minute);
		Date afterFiveMin = now.getTime();
		return format.format(afterFiveMin);
	}
/**
	 * 判断时间是否整点
	 * 
	 * @return
	 */
	public static boolean isHourTime(String date) {

		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date1 = null;
		try {
			date1 = sdf1.parse(date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		// 判断是否整点
		// 格式化时间串,HH:MM:SS分别是时分秒,这里只判断分钟,有mm就够了
		// 需要秒的话,就mm:ss,下面就判断是否 00:00
		SimpleDateFormat sdf = new SimpleDateFormat("mm");
		String timestr = sdf.format(date1);
		// 判断是否为需要的时间,比如整点时分钟为00
		if (timestr.equals("00")) {

			return true;
		} else {

			return false;
		}
	}
 /**
     * 获取固定天数后的时间
     * @param date
     * @param dayNum
     * @return
     */
    public static String getDateNum(Date date,int dayNum){
        //对当前时间进行转换 括号里面的是转换规则("yyyy-MM-dd HH:mm:ss")
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        date.setTime(System.currentTimeMillis());
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        //5是传的参数 就是说要获取几天后的当前具体时间
        c.add(Calendar.DATE, dayNum);
        Date d3 = c.getTime();
        String date3 = format.format(d3);
        return date3;
    }
	/**
	 * 将字符串,转化为时间
	 * 
	 * @param time
	 * @return
	 */
	public static Date changeDateByString(String time) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = null;
		try {
			date = format.parse(time);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}
  /**
     * 判断当前日期所属区间范围;
     * @param beginTime :开始时间
     * @param endTime:结束时间
     * @return 0:开始时间之前;1:开始时间与结束时间之间;2:结束时间之后;999;转化出错
     */
    public static int isBetween(LocalDateTime beginTime, LocalDateTime endTime) {
        //0:开始时间之前;1:开始时间与结束时间之间;2:结束时间之后;999;转化出错
        int flag = 999;
        LocalDateTime now = LocalDateTime.now();
        if(now.isBefore(beginTime)){
            flag = 0;
        }else if (now.isAfter(beginTime) && now.isBefore(endTime)) {
            flag = 1;
        }else if (now.isAfter(endTime)){
            flag = 2;
        }
        return flag;
    }
/**
     * 获取上个月的第一天
     * @return
     */
    public static String getLastMonth() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        // 调整到上个月
        calendar.add(Calendar.MONTH, -1);
        // 设置为该月的第一天
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        Date firstDayOfLastMonth = calendar.getTime();
        String firstDayOfLastMonthStr = sdf.format(firstDayOfLastMonth);
     
        return firstDayOfLastMonthStr;
    }
 /**
     * 时间戳转日期
     * @param timestamp:时间戳
     * @return
     */
    public static String stampToDate(long timestamp){

        Date date = new Date(timestamp);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = dateFormat.format(date);
        System.out.println("时间戳转日期: " + formattedDate);
        return formattedDate;
    }
 /**
     * 日期转时间戳
     * @param date
     * @return
     */
    public static Long dateToStamp(String date){
        String strDate = "2023-04-05 10:20:30";
        SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date parsedDate = parser.parse(strDate);
            long parsedTimestamp = parsedDate.getTime();
            return parsedTimestamp;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
/**
     * 日期转字符串
     * @param date
     * @return
     */
    public static String dateToStr(Date date){
        SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        return parser.format(date);
    }


    /**
     * 字符串转日期
     * @param date
     * @return
     */
    public static Date strToDate(String date){
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try {
            return formatter.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
/**
     * 秒/毫秒转字符串日期
     * @param second
     * @return
     */
    public static String secondToDate(Long second){
        String strSecond = Long.toString(second);
        LocalDateTime dateTime= null;
        //10位的是秒
        if(strSecond.length() == 10){
            dateTime = LocalDateTime.ofEpochSecond(second, 0, ZoneOffset.of("+8"));
        }
        //13位的是毫秒
        if(strSecond.length() == 13){
            dateTime= new Date(second).toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
        }
        StringBuffer sb = new StringBuffer();
        sb.append(dateTime.getYear());
        sb.append("-");
        sb.append(dateTime.getMonth().getValue());
        sb.append("-");
        sb.append(dateTime.getDayOfMonth());
        sb.append(" ");
        sb.append(dateTime.getHour());
        sb.append(":");
        sb.append(dateTime.getMinute());
        sb.append(":");
        sb.append(dateTime.getSecond());
        return sb.toString();
    }
//判断固定日期,是否在两个日志之间
    public static void main(String[] args) {
        // 固定日期
        LocalDate fixedDate = LocalDate.of(2023, 4, 15);
 
        // 两个日期
        LocalDate date1 = LocalDate.of(2023, 4, 1);
        LocalDate date2 = LocalDate.of(2023, 4, 30);
 
        // 判断固定日期是否在date1和date2之间
        boolean isBetween = fixedDate.isAfter(date1) && fixedDate.isBefore(date2);
 
        System.out.println("固定日期是否在date1和date2之间: " + isBetween);
    }
/**
     * 获取两个日期直接所有的天数
     * @param startDate:开始日期 "2023-01-01"
     * @param endDate:结束日期"2023-01-05"
     * @return
     */
    public static List<LocalDate> getDatesBetween(String startDate, String endDate) {
        LocalDate start = LocalDate.parse(startDate);
        LocalDate end = LocalDate.parse(endDate);
        Period period = Period.between(start, end);
        int days = period.getDays();
        int daysBetween = (int) Math.signum(days) * (Math.abs(days) + 1);

        List<LocalDate> dates = new ArrayList<>(daysBetween);
        for (int i = 0; i < daysBetween; i++) {
            dates.add(start.plusDays(i));
        }
        return dates;
    }
 /**
     * 获取两个日期直接所有的天数
     * @param begin:开始日期"2023-01-01 00:00:00"
     * @param end:结束日期"2023-01-05 23:59:59"
     * @return
     */
    public static List<String> getAllDateList(String begin,String end){
        List<String> resList = new ArrayList<String>();
        Date startDate = new Date();
        Date endDate = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            startDate = format.parse(begin);
            endDate = format.parse(end);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        List<Date> dates = new ArrayList<>();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(startDate);
        while (calendar.getTime().before(endDate)) {
            dates.add(calendar.getTime());
            calendar.add(Calendar.DATE, 1);
        }
        for (int i = 0; i < dates.size(); i++) {
            Date date = dates.get(i);
            String dateStr = dateToStrNew(date);
            resList.add(dateStr);
        }
        return resList;
    }
Java日期工具类 日期工具类 DateUtil package com.huawei.common.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calen... 阅读详情

相关推荐

16进制hex和日期时间datetime转换工具2.0

比上一版增加很多功能: 1、16进制转时间、转秒; 2、指定时间转时间、转秒; 3、现在时间转时间、转秒; 4、指定时间之间时间差、转时间、转秒。

日期到十进制十六进制转换

日期十进制十六进制转换: public static void RunSnippet() {     DateTime dt=DateTime.Now;     long num_10 = dt.Ticks;     Console.WriteLine("+-----------------------------------------------------------

挨踢笔记 1万+

十六进制时间转化器和IP转化器

这个工具我一直在找寻,却没有找到过,于是自己编写了一个。 提供16进制数值和标准时间之间的相互转换,附带IP地址和对应16进制形式的相互转换。这个工具在解密工作中非常有用。 欢迎下载。

时间戳转成16进制字符串,16进制字符串转成时间戳

一、时间戳转成16进制字符串 JavaScript toString() 方法:把一个 Number 对象转换为一个字符串,并返回结果。 语法:NumberObject.toString(radix) radix - 表示数字的基数,是 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。 返回值:数字的字符串表示。例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。 注意:当调用该方法的对象不是 Number 时抛出 TypeError 异常。

我的博客 1万+

十六进制与时间转换

十六进制与时间转换器工具,方便分析数据包等用途

对单周期 RISC-V 处理器进行扩展

对单周期 RISC-V 处理器进行扩展

xiaoxian666的博客 1481

Java日期工具类时间校验

先来看一个简单的日期的正则表达式的规则,年份4位数字,月份2位数字,日2位数字,时2位数字,分2位数字,秒2位数字。使用SimpleDateFormat工具类,就不需要考虑规则了,这些人家都考虑好了,咱们只需要定义日期格式就行了。我找到一个判断闰年的,但是前提是他把年份的范围规定死了,然后把闰年穷举出来,然后做一个简单的逻辑控制。时间校验这个问题,我在网上找了很多资料,有用正则表达式的、有用格式工具类的。:那么该年份除以400,有余数的是平年,没有余数的是闰年。:除以4,有余数的是平年,没有余数的是闰年,

Death Note 1756

移动通信基础(13)TDL、CDL、信道相关性

参考《U型槽无线信道多径传播特性测量与建模方法的研究》、《5G信号源中的信道模拟与仿真研究》衰落衰落理解为信号幅度在时间和频率上的不断波动,是无线信道一个重要的恶化特性。信道幅度恶化的两个主要来源分别是加性噪声和信号衰落,高斯白噪声信道模型就是典型的加性噪声,信号衰落引起的是乘性的信号扰动,与加性噪声从原理上完全不同。信道的频率选择性衰落组为无线信道的重要特征之一,是人们进行无线系统设计考虑的重要因素,决定了导频隔间的大小。...

tybAly的博客 2万+

DateUtil 日期工具类

package com.ls.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.co

yuanquanl的博客 4165

告别复杂配置!5分钟在Vue/React项目中集成讯飞语音听写WebSocket API

本文详细介绍了如何在Vue/React项目中快速集成讯飞语音听写WebSocket API,实现高效语音识别功能。通过对比不同通信方案,突出WebSocket在实时语音交互中的优势,并提供框架适配、音频处理及性能优化等关键技术点,帮助开发者5分钟内完成专业级语音听写功能集成。

weixin_28730353的博客 274

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2968
上一篇: nginx配置http和websocket转发
下一篇: 日常记录软件操作
只会debug
博客等级 码龄9年 69粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值