日期时间工具

简介: 本文提供Java日期处理工具类参考,涵盖常见日期操作:获取开始/结束时间、日期加减、周数计算、星期转换、时间格式化与解析、天数差计算等实用方法,适用于日常开发中的时间处理需求。

引包参考

分钟转小时获取当天开始/结束时间获取昨天开始/结束时间获取明天开始/结束时间获取某个日期的开始/结束时间获取本周的开始/结束时间获取上周开始/结束时间获取今年是哪一年获取本月是哪一月获取本月的开始/结束时间获取上月的开始/结束时间获取本年的开始/结束时间两个日期相减得到的天数/毫秒数获取当前日期前/后几个月的日期获取两个日期中的最大/最小日期获取某月该季度的第一个月 获取某个日期之后/之前几天的日期Date转StringString转DateCST时间类型字符串格式化输出long转Date当前日期是否在[startDate, endDate]区间两个日期间的间隔天数闰年判断美国时间格式 两个日期是否在同一周  获取星期几

Java

运行代码复制代码

import org.springframework.stereotype.Component;


import java.sql.Timestamp;

import java.text.ParseException;

import java.text.ParsePosition;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.List;

import java.util.Locale;

import java.util.Random;


/**

* 根据一个日期,返回是星期几的字符串

* @param sdate

* @return

*/

public static String getWeek(String sdate) {

// 再转换为时间

Date date = strToDate(sdate);

Calendar c = Calendar.getInstance();

c.setTime(date);

// int hour=c.get(Calendar.DAY_OF_WEEK);

// hour中存的就是星期几了,其范围 1~7

// 1=星期日 7=星期六,其他类推

return new SimpleDateFormat("EEEE").format(c.getTime());

}


/**

* 根据一个日期,返回是星期几的字符串

* @param sdate

* @return

*/

public static String getWeekStr(String sdate){

String str = "";

str = getWeek(sdate);

if("1".equals(str)){

str = "星期日";

}else if("2".equals(str)){

str = "星期一";

}else if("3".equals(str)){

str = "星期二";

}else if("4".equals(str)){

str = "星期三";

}else if("5".equals(str)){

str = "星期四";

}else if("6".equals(str)){

str = "星期五";

}else if("7".equals(str)){

str = "星期六";

}

return str;

}

两个时间之间的天数

Java

运行代码复制代码

public static Date getBeginDayOfTomorrow(){

   // 开始

   Calendar cal=Calendar.getInstance();

   cal.setTime(getDayBegin());//当天开始时间

   cal.add(Calendar.DAY_OF_MONTH, 1);//当天月份天数加1

   return cal.getTime();

 

   // 结束

   Calendar cal=Calendar.getInstance();

   cal.setTime(getDayEnd());//当天结束时间

   cal.add(Calendar.DAY_OF_MONTH, 1);//当天月份天数加1

   return cal.getTime();

}


/**

* 两个时间之间的天数

* @param date1

* @param date2

* @return

*/

public static long getDays(String date1, String date2) {

if (date1 == null || date1.equals(""))

return 0;

if (date2 == null || date2.equals(""))

return 0;

// 转换为标准时间

SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

java.util.Date date = null;

java.util.Date mydate = null;

try {

date = myFormatter.parse(date1);

mydate = myFormatter.parse(date2);

} catch (Exception e) {

}

long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);

return day;

}


相关文章
|
2月前
|
JSON API PHP
免费天气预报API接口详解
天气预报1-7天API接口,由中国气象局官方数据支持,提供全国范围内的精准天气预报。支持查询温度、天气状况、风力风向、湿度、气压等多维度信息,具备时段预报与天气预警功能。通过RESTful API调用,返回JSON格式数据,适用于出行、农业、智能家居等多种应用场景。
953 4
|
2月前
|
人工智能 机器人 Java
黑马最新项目
AIGC项目涵盖大模型私有化部署、聊天机器人、RAG知识库及代码提示工具;天机AI集成SpringAI与多模型工作流;云岚到家聚焦微服务与分布式架构;四方保险构建统一支付与时序数据应用;星辰WMS与Dify项目即将发布。
109 0
黑马最新项目
|
2月前
|
canal 缓存 关系型数据库
微服务原理篇(Canal-Redis)
本文介绍了ES索引同步的常见方案,重点讲解Canal+MQ数据同步机制。通过解析MySQL的binlog日志,Canal模拟slave伪装接入主库,实现增量数据捕获,并结合RabbitMQ保证消息顺序性地同步至Elasticsearch。同时探讨了缓存一致性问题,提出使用分布式锁(如Redis)控制并发写操作,避免双写不一致。还涵盖Redis持久化、集群模式、过期淘汰策略及缓存三剑客(穿透、雪崩、击穿)的解决方案,系统梳理了高并发场景下的数据同步与缓存保障技术体系。
88 0
 微服务原理篇(Canal-Redis)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本手册由油炸小波设计提示词、Manus创作,系统梳理大语言模型核心概念,涵盖基础原理、训练技术、优化压缩、推理应用、评估调试及伦理安全六大模块,深入浅出解析LLM关键技术术语。
292 0
|
2月前
|
Arthas 存储 运维
记Arthas实现一次CPU排查与代码热更新
本文介绍使用Arthas排查Java应用CPU占用过高问题的完整流程,涵盖线程分析、阻塞定位、watch命令追踪异常、jad反编译实现热更新及火焰图分析,实现无需重启应用的高效故障排查与代码修复。
91 0
|
编解码 前端开发 Android开发
Android经典实战之TextureView原理和高级用法
本文介绍了 `TextureView` 的原理和特点,包括其硬件加速渲染的优势及与其他视图叠加使用的灵活性,并提供了视频播放和自定义绘制的示例代码。通过合理管理生命周期和资源,`TextureView` 可实现高效流畅的图形和视频渲染。
1038 12
|
Java 程序员 API
Android 编译插桩操纵字节码
Android 编译插桩操纵字节码
351 0
|
Kotlin
找不到 kotlinx.android.synthetic***
找不到 kotlinx.android.synthetic***
642 0
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
1375 0
|
存储 Java Maven
Maven jar 包下载失败问题处理【配置Maven国内源】
Maven jar 包下载失败问题处理【配置Maven国内源】
1761 0