DateUtils时间类

article/2025/10/12 13:18:05

1、测试

package test.utils.date;
import java.text.ParseException;
import java.util.Date;
import org.apache.commons.lang.time.DateUtils;
public class Test {public static void main(String[] args) {int amount = 2;Date date = new Date();// System.out.printf("%tF %<tT", date);System.out.println(date);// 增加amount天System.out.println(DateUtils.addDays(date, amount));// 增加amount小时System.out.println(DateUtils.addHours(date, amount));// 增加amount毫秒System.out.println(DateUtils.addMilliseconds(date, amount));// 增加amount分钟System.out.println(DateUtils.addMinutes(date, amount));// 增加amount月System.out.println(DateUtils.addMonths(date, amount));// 增加amount秒System.out.println(DateUtils.addSeconds(date, amount));// 增加amount星期System.out.println(DateUtils.addWeeks(date, amount));// 增加amount年System.out.println(DateUtils.addYears(date, amount));// 比较两个日期对象是否相等,只比较year, month, daySystem.out.println(DateUtils.isSameDay(date, new Date()));// 比较两个日期对象是否完全相等,精确到毫秒System.out.println(DateUtils.isSameInstant(date, new Date()));}}

2、封装

/** * DateUtils.java */  import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.Date;  /** *  *<p>Description : 日期工具类</p> *<p>Date        : May 3, 2013</p> *<p>Remark      : </p> * @version */  
public class DateUtils {  /** * YYYY-MM-DD格式 */  private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  /** * YYYY-MM格式 */  private static SimpleDateFormat monthFormat = new SimpleDateFormat(  "yyyy-MM");  /** * 将String转换成Date */  public synchronized static Date stringToDate(String pattern, String p_date_s) throws ParseException {  if (p_date_s == null || "".equals(p_date_s))  return null;  SimpleDateFormat sdf = new SimpleDateFormat(pattern);  return sdf.parse(p_date_s);  }  /** * 将Date转换成String */  public static String dateToString(String pattern, Date p_string_d){  if (p_string_d == null)  return null;  SimpleDateFormat sdf = null;  try {  sdf = new SimpleDateFormat(pattern);  } catch (Exception e) {  LogUtils.error(DateUtils.class, e);  }  return sdf.format(p_string_d);  }  /** *  * 根据日期,获得当年第一月 *  * @param date  *             日期 * @return 当年第一月  yyyy-MM */  public static String GetFirstMonth(String date) {  Calendar calendar = Calendar.getInstance();  Date dateFrom = null;  try {  dateFrom = format.parse(date);  calendar.setTime(dateFrom);  int year = calendar.get(Calendar.YEAR);  return year + "-" + "01";  } catch (Exception e) {  e.printStackTrace();  return null;  }  }  /** * 根据日期,获得当前月 *  * @param date  *             日期 * @return 当年第一月  yyyy-MM */  public static String GetMonth(String date) {  Calendar calendar = Calendar.getInstance();  Date dateFrom = null;  try {  dateFrom = format.parse(date);  calendar.setTime(dateFrom);  int year = calendar.get(Calendar.YEAR);  int month = calendar.get(Calendar.MONTH) + 1;  return year + "-" +  StringUtils.Pading(Integer.toString(month), 2, StringUtils.LEFT, '0');  } catch (Exception e) {  e.printStackTrace();  return null;  }  }  /** * 获取指定日期的当月第一天日期 *  * @param date *            日期 * @return 当月第一天日期 */  public static String GetFirstDateOfMonth(String date) {  Calendar calendar = Calendar.getInstance();  Date dateFrom = null;  try {  dateFrom = format.parse(date);  calendar.setTime(dateFrom);  int count = calendar.get(Calendar.DAY_OF_MONTH) - 1;  for (int i = 0; i < count; i++) {  calendar.add(calendar.DATE, -1);  }  return format.format(calendar.getTime());  } catch (Exception e) {  e.printStackTrace();  return null;  }  }  /** * 倒退数周的周一日期 *  * @param date *            日期 * @param week *            周数 * @return 周第一天 */  public static String GetFirstDateOfWeek(String date, int week) {  Calendar calendar = Calendar.getInstance();  Date dateFrom = null;  try {  dateFrom = format.parse(date);  calendar.setTime(dateFrom);  int dow = calendar.get(Calendar.DAY_OF_WEEK) - 2;  int count = 7 * week;  for (int i = 0; i < count + dow; i++) {  calendar.add(calendar.DATE, -1);  }  return format.format(calendar.getTime());  } catch (Exception e) {  e.printStackTrace();  return null;  }  }  /** * String类型日期转换Date型 *  * @param bir *            出生年月 * @param string *            格式 * @return 日期型 * @throws ParseException *             异常 */  public static Date getDateTime(String bir, String string)  throws ParseException {  SimpleDateFormat format = new SimpleDateFormat(string);  Date date = format.parse(bir);  return date;  }  /** * 取得当前系统时间 * @return */  public static Date getCurrentDateTime() {  Calendar c = Calendar.getInstance();  return c.getTime();  }  /** * 转换当前时间 * @param format 指定格式 * @return 日期 */  public static Date parseCurrentDateTime(String format) {  Calendar c = Calendar.getInstance();  Date d = null;  try {  d = parseDateTime(c.getTime(), format);  } catch (ParseException e) {  e.printStackTrace();  }  return d;  }  /** * 格式化当前时间 * @param format 指定格式 * @return 日期字符串形式 */  public static String formatCurrentDateTime(String format) {  Calendar c = Calendar.getInstance();  SimpleDateFormat dateFormat = new SimpleDateFormat(format);  return dateFormat.format(c.getTime());  }  /** * 取得指定时间固定格式的字符串形式 * @param date 时间 * @param format 格式 * @return */  public static String formatDateTime(Date date, String format) {  SimpleDateFormat dateFormat = new SimpleDateFormat(format);  return dateFormat.format(date);  }  /** * 转换指定时间为固定格式 * @param dateStr 时间 * @param format 格式 * @return * @throws ParseException */  public static Date parseDateTime(String dateStr, String format) throws ParseException {  SimpleDateFormat dateFormat = new SimpleDateFormat(format);  return dateFormat.parse(dateStr);  }  /** * 转换指定时间为固定格式 * @param date 时间 * @param format 格式 * @return * @throws ParseException */  public static Date parseDateTime(Date date, String format) throws ParseException {  SimpleDateFormat dateFormat = new SimpleDateFormat(format);  return dateFormat.parse(dateFormat.format(date));  }  /** * 根据日期取得对应周周一日期 * * @param date * @return */  public static Date getMondayOfWeek(Date date) {  Calendar monday = Calendar.getInstance();  monday.setTime(date);  monday.setFirstDayOfWeek(Calendar.MONDAY);  monday.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);  return monday.getTime();  }  /** * 取得上月第一天 * * @param date * @return */  public static Date getFirstDateOfMonth(Date date) {  Calendar c = Calendar.getInstance();  //c.setTime(date);  c.add(Calendar.MONTH, -1);  c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));  return c.getTime();  }  /** * 根据日期取得对应月的1号 * xuxiaojun * @param date * @return */  public static Date getFirstDateOfMonthByDay(Date date) {  Calendar c = Calendar.getInstance();  c.setTime(date);  c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));  return c.getTime();  }  /** * 得到系统的年,格式:"YYYY" *  *  * @return int */  public static int getSysYear() {  Calendar cal = Calendar.getInstance();  int year = cal.get(Calendar.YEAR);  return year;  }  /** * 得到当前周是一年第几周 * @param date * @return */  public static int getWeekOfYear(Date date){  Calendar cal = Calendar.getInstance();  cal.setTime(date);  return cal.get(Calendar.WEEK_OF_YEAR);  }  /** * 获得指定日期的当前月的最后一天 * @param date 指定日期 * @return */  public static Date getLastDayOfMonth(Date date) {   Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.add(Calendar.DATE, 1);  return cal.getTime();   }  /** * 获得指定日期的下一天 * @param date 指定日期 * @return */  public static Date getNextDay(Date date){  Calendar cal = Calendar.getInstance();   cal.setTime(date);   cal.add(Calendar.DATE, 1);  return cal.getTime();   }   /** * 获得当前日期当前月的第一天 * @param format 指定格式 * @return 指定格式的日期形式 * @author hll */  public static String getFirstDayOfMonth(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.add(Calendar.DATE, 1);          //本月的第一天  return formatDateTime(cal.getTime(), format);   }  /** * 获得当前日期当前月的最后一天 * @param format 指定格式 * @return 指定格式的日期形式 */  public static String getLastDayOfMonth(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.set(Calendar.DAY_OF_MONTH, 1);   cal.add(Calendar.MONTH, 1);   cal.add(Calendar.DATE, -1);         //本月的最后一天  return formatDateTime(cal.getTime(), format);   }  /** * 获得当前日期当前周的第一天 * @param format 指定格式 * @return 指定格式的日期形式 * @author hll */  public static String getFirstDayOfWeek(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.setFirstDayOfWeek(Calendar.MONDAY);  cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 本周的第一天  return formatDateTime(cal.getTime(), format);   }  /** * 获得当前日期当前周的最后一天 * @param format 指定格式 * @return 指定格式的日期形式 * @author hll */  public static String getLastDayOfWeek(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.setFirstDayOfWeek(Calendar.MONDAY);  cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY+6); // 本周的最后一天  return formatDateTime(cal.getTime(), format);   }  /** * 获得当前日期当前年的第一天 * @param format 指定格式 * @return 指定格式的日期形式 * @author hll */  public static String getFirstDayOfYear(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.set(Calendar.DAY_OF_YEAR, 1);           //本年的第一天  return formatDateTime(cal.getTime(), format);   }  /** * 获得当前日期当前年的最后一天 * @param format 指定格式 * @return 指定格式的日期形式 * @author hll */  public static String getLastDayOfYear(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.set(Calendar.DAY_OF_YEAR, 1);           //本年的第一天  cal.add(Calendar.YEAR, 1);    cal.add(Calendar.DATE,-1);                  //本年的最后一天  return formatDateTime(cal.getTime(), format);   }  /** * 获得下一个月的最后一天 * @param format 指定格式 * @return 指定格式的日期形式 */  public static String getLastDayOfNextMonth(String format) {  Calendar cal = Calendar.getInstance();   cal.setTime(new Date());   cal.set(Calendar.DAY_OF_MONTH, 1);   cal.add(Calendar.MONTH, 2);   cal.add(Calendar.DATE, -1);   return formatDateTime(cal.getTime(), format);   }  public static int[] getDateTimeSub(Date date1, Date date2) {  Calendar cal = Calendar.getInstance();   cal.setTime(date1);   int y1 = cal.get(Calendar.YEAR);  int m1 = cal.get(Calendar.MONTH);  int d1 = cal.get(Calendar.DAY_OF_YEAR);  cal.setTime(date2);   int y2 = cal.get(Calendar.YEAR);  int m2 = cal.get(Calendar.MONTH);  int d2 = cal.get(Calendar.DAY_OF_YEAR);  int[] array = new int[] {y1 - y2, m1 - m2, d1 - d2};  return array;  }  /** * 取得两个日期的差值 * @param startTime 开始日期 * @param endTime 结束日期 * @param 适用于yyyy-MM-dd,精确到日 * @return 差值日 */  public static int dateDiff(String startTime, String endTime) {  SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");  long nd = 1000 * 24 * 60 * 60;  long diff;  long day = 0l;  try {  diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();  day = diff / nd;  } catch (ParseException e) {  e.printStackTrace();  }  return (int)day;  }  }  

关注我的技术公众号《漫谈人工智能》,每天推送优质文章


http://chatgpt.dhexx.cn/article/17VsODUk.shtml

相关文章

dateutil模块

安装&#xff1a;终端运行 pip install python-dateutil python第三方模块dateutil模块主要使用以下&#xff0c;1&#xff0c; parse&#xff0c;2&#xff0c;rrule, 3&#xff0c;relativedelta。 parse把字符串格式的时间转化为datetime.datetime格式时间。util是计算时间差…

封装工具类DBUtils、DateUtils详解

三、封装工具类DBUtils、DateUtils 把以下会重复写的代码封装&#xff1a; 3.1 封装货期连接、释放资源两个方法 提供public static Connection getConnection(){}方法。提供public static void closeAll(Connection conn,Statement sm,ResultSet rs){}方法。 3.2 跨平台方…

常用DateUtil

导语 最近项目中用到一些时间的操作&#xff0c;当然我们可以选择lang3&#xff0c;或者其他三方的jar&#xff0c;来进行操作&#xff0c;小编将项目中用到的一些用于的时间工具整理了一下&#xff0c;给大家参考一下! 先给大家展示一下使用及效果 使用 GetMapping(value &…

Android个人学习笔记之实战时间的获取相关-DateUtils

前言&#xff1a;在近期的项目编写过程中&#xff0c;看到了时间工具类DateUtil&#xff0c;虽然大致的用法已经清楚&#xff0c;但是对于这个类还是有一定的不解&#xff0c;很多类型并不知道实际的效果如何&#xff0c;所以就结合Android的API&#xff0c;实战来测试不同的效…

什么是token和使用的意义

一、什么是token token &#xff08;计算机术语&#xff09; 在计算机身份认证中是令牌&#xff08;临时&#xff09;的意思&#xff0c;在词法分析中是标记的意思。一般作为邀请、登录系统使用。 二、token的意义 令牌&#xff1a;代表执行某些操作的权利和对象&#xff0c;访…

Token

Token笔记 是什么SessionCookietoken 为什么Session和Cookie 区别&#xff1a;token和Session区别&#xff1a;Session缺陷token相比而言&#xff1a; 怎么做token工作流程&#xff1a;token结构&#xff1a; 是什么 web应用程序是使用HTTP协议来传送数据的。而HTTP是无状态的…

Java 中 Token 是什么,有哪些用途

简介 Token 是一种身份验证机制&#xff0c;通常由服务器生成并返回给客户端&#xff0c;客户端在后续的请求中携带 Token&#xff0c;以证明自己的身份。在 Java 中&#xff0c;Token 的应用场景非常广泛&#xff0c;例如用户登录、API 认证、OAuth 授权等等。 在用户登录的…

Token的作用及原理

讲到Token的作用和原理&#xff0c;网上有很多相关的技术文章&#xff0c;通过搜集整理并加入自己的理解体会&#xff0c;做一个总结整理&#xff0c;希望可以帮助到更多有需要的人。 1、token作用及原理 Token&#xff0c;即令牌&#xff0c;是服务器产生的&#xff0c;具有…

Token和Jwt的区别

Token基本原理 Token(就是加密的字符串,使用MD5,等不可逆加密算法,一定要保证唯一性) 客户端使用用户名跟密码请求登录 服务端收到请求&#xff0c;去验证用户名与密码 验证成功&#xff0c;服务端会签发一个Token保存到(Session,redis,mysql…)中&#xff0c;然后再把这个 …

什么是token及怎样生成token

什么是token Token是服务端生成的一串字符串&#xff0c;以作客户端进行请求的一个令牌&#xff0c;当第一次登录后&#xff0c;服务器生成一个Token便将此Token返回给客户端&#xff0c;以后客户端只需带上这个Token前来请求数据即可&#xff0c;无需再次带上用户名和密码。 基…

token是什么?

token的意思是令牌&#xff0c;是服务端生成的一串字符串&#xff0c;作为客户端进行请求的一个标识。 当用户第一次登录后&#xff0c;服务器生成一个token&#xff0c;并将token返回给客户端&#xff0c;之后客户端只需要带上这个token前来请求数据即可&#xff0c;无需再带…

Token是什么 Token登录认证

Token 是在服务端产生的一串字符串。如果前端使用用户名/密码向服务端请求认证&#xff0c;服务端认证成功&#xff0c;那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。如果这个 Token 在服务端持久化&#xff08;比如存入数据库&a…

什么是Token(令牌)

Acess Token 访问资源接口&#xff08;API&#xff09;时所需要的资源凭证 简单token 的组成&#xff1a; uid&#xff08;用户唯一的身份标识&#xff09; 、time (当前时间的时间戳) ,sign&#xff08;签名&#xff0c;token的前几位以hash算法压缩成的一定长度的16进制字符…

什么是token?token是用来干嘛的?

相信很多从事计算机行业的朋友都听说过token这么个东西&#xff0c;但是其他行业的人就很少了解到token&#xff0c;下面就给大家来详细介绍一下token是什么意思&#xff1f;token是用来干嘛的这一块的内容&#xff0c;希望能帮助到大家。 &#x1f3fb; token是什么意思 作为…

究竟什么是token??

基于服务器验证方式的验证流程&#xff1a; 我们都是知道HTTP协议是无状态的&#xff0c;这种无状态意味着程序需要验证每一次请求&#xff0c;从而辨别客户端的身份。在这之前&#xff0c;程序都是通过在服务端存储的登录信息来辨别请求的。这种方式一般都是通过存储Session来…

python 处理 MovieLens 数据

文章目录 一、总述二、处理流程1. 处理 users 数据2. 处理 movies 数据3. 处理 ratings 数据4. 将 users、movies 和 ratings 数据合并5. one-hot 处理6. 完整代码 一、总述 该文记录处理 MovieLens-1m 数据集的步骤&#xff0c;首先分别处理用户、电影和评分数据&#xff0c;…

电影数据集总结:Netflix、MovieLens、LDOS-CoMoDa、AdomMovie

数据集&#xff1a; 1.Netflix 描述&#xff1a;包含Netflix上48万多个随机选取的匿名用户&#xff0c;对于1万7千多部电影的1兆多个电影评分 时间&#xff1a;1988.10~2005.11 内容&#xff1a; 包括training set&#xff0c;movie titles&#xff0c;probe set&#xff0…

从IMDB上爬取MovieLens数据集中的详细电影信息

文章目录 基于协同过滤的电影推荐系统数据集HTML页面分析爬虫代码运行时间百度网盘链接 基于协同过滤的电影推荐系统 用这个数据集实现了一个小型的电影推荐网站&#xff0c;GitHub代码 数据集 数据集是MovieLens提供的ml-latest-small https://grouplens.org/datasets/mov…

数据分析实例:MovieLens电影数据分析

数据分析实例&#xff1a;MovieLens电影数据分析 数据准备 数据集来源&#xff1a;grouplens.org/datasets/movielens/ 下载 ml-1m.zip&#xff0c;read me 中有电影评分介绍 MovieLens 1M电影分级。 稳定的基准数据集。 6000个用户观看4000部电影时获得100万个评分。 发布2…

Spark Hive实现基于协同过滤的电影推荐(MovieLens数据集)

这篇文章记录一下我之前做过的通过Spark与Hive实现的基于协调过滤的电影推荐。这篇文章只能提供算法、思路和过程记录&#xff0c;并没有完整的代码&#xff0c;仅尽量全面地记录过程细节方便参考。 一、数据获取 数据集是从下面这个地址下载的&#xff0c;数据集主要内容是关…