常用DateUtil

article/2025/10/12 13:22:06

导语

最近项目中用到一些时间的操作,当然我们可以选择lang3,或者其他三方的jar,来进行操作,小编将项目中用到的一些用于的时间工具整理了一下,给大家参考一下!

先给大家展示一下使用及效果

使用
@GetMapping(value = "/getTime")public  void getTime(){Role role = roleService.selectById(2L);Date gmtCreate = role.getGmtCreate();Date gmtModified = role.getGmtModified();int diffDays = timeUtil.getDiffDays(gmtCreate, gmtModified);logger.info("时间差----->" +diffDays);}
效果

在这里插入图片描述

工具类

package com.javayh.util;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;/*** 超详细的时间工具类* @author Administrator**/
@Component
public class TimeUtil {/*** 获取当天开始时间* @return*/public static Date getDayBegin(){Calendar cal=Calendar.getInstance();cal.set(Calendar.HOUR_OF_DAY, 0);//0点cal.set(Calendar.MINUTE, 0);//0分cal.set(Calendar.SECOND, 0);//0秒cal.set(Calendar.MILLISECOND, 0);//0毫秒return cal.getTime();}/*** 获取当天结束时间* @return*/public static Date getDayEnd(){Calendar cal=Calendar.getInstance();cal.set(Calendar.HOUR_OF_DAY, 23);//23点cal.set(Calendar.MINUTE, 59);//59分cal.set(Calendar.SECOND, 59);//59秒return cal.getTime();}/*** 获取昨天开始时间* @return*/public static Date getBeginDayOfYesterday(){Calendar cal=Calendar.getInstance();cal.setTime(getDayBegin());//当天开始时间cal.add(Calendar.DAY_OF_MONTH, -1);//当天月份天数减1return cal.getTime();}/*** 获取昨天结束时间* @return*/public static Date getEndDayOfYesterday(){Calendar cal=Calendar.getInstance();cal.setTime(getDayEnd());//当天结束时间cal.add(Calendar.DAY_OF_MONTH, -1);//当天月份天数减1return cal.getTime();}/*** 获取明天开始时间* @return*/public static Date getBeginDayOfTomorrow(){Calendar cal=Calendar.getInstance();cal.setTime(getDayBegin());//当天开始时间cal.add(Calendar.DAY_OF_MONTH, 1);//当天月份天数加1return cal.getTime();}/*** 获取明天结束时间* @return*/public static Date getEndDayOfTomorrow(){Calendar cal=Calendar.getInstance();cal.setTime(getDayEnd());//当天结束时间cal.add(Calendar.DAY_OF_MONTH, 1);//当天月份天数加1return cal.getTime();}/*** 获取某个日期的开始时间* @param d* @return*/public static Timestamp getDayStartTime(Date d) {Calendar calendar=Calendar.getInstance();if(null!=d){calendar.setTime(d);}calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);calendar.set(Calendar.MILLISECOND, 0);return new Timestamp(calendar.getTimeInMillis());}/*** 获取某个日期的结束时间* @param d* @return*/public static Timestamp getDayEndTime(Date d) {Calendar calendar=Calendar.getInstance();if(null!=d){calendar.setTime(d);}calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);calendar.set(Calendar.MILLISECOND, 999);return new Timestamp(calendar.getTimeInMillis());}/*** 获取本周的开始时间* @return*/@SuppressWarnings("unused")public static Date getBeginDayOfWeek(){Date date=new Date();if(date==null){return null;}Calendar cal=Calendar.getInstance();cal.setTime(date);int dayOfWeek=cal.get(Calendar.DAY_OF_WEEK);if(dayOfWeek==1){dayOfWeek+=7;}cal.add(Calendar.DATE, 2-dayOfWeek);return getDayStartTime(cal.getTime());}/*** 获取本周的结束时间* @return*/public static Date getEndDayOfWeek(){Calendar cal=Calendar.getInstance();cal.setTime(getBeginDayOfWeek());cal.add(Calendar.DAY_OF_WEEK, 6);Date weekEndSta = cal.getTime();return getDayEndTime(weekEndSta);}/*** 获取上周开始时间*/@SuppressWarnings("unused")public static Date getBeginDayOfLastWeek() {Date date=new Date();if (date==null) {return null;}Calendar cal=Calendar.getInstance();cal.setTime(date);int dayofweek=cal.get(Calendar.DAY_OF_WEEK);if (dayofweek==1) {dayofweek+=7;}cal.add(Calendar.DATE, 2-dayofweek-7);return getDayStartTime(cal.getTime());}/*** 获取上周的结束时间* @return*/public static Date getEndDayOfLastWeek(){Calendar cal=Calendar.getInstance();cal.setTime(getBeginDayOfLastWeek());cal.add(Calendar.DAY_OF_WEEK, 6);Date weekEndSta = cal.getTime();return getDayEndTime(weekEndSta);}/*** 获取今年是哪一年* @return*/public static Integer getNowYear(){Date date = new Date();GregorianCalendar gc=(GregorianCalendar)Calendar.getInstance();gc.setTime(date);return Integer.valueOf(gc.get(1));}/*** 获取本月是哪一月* @return*/public static int getNowMonth() {Date date = new Date();GregorianCalendar gc=(GregorianCalendar)Calendar.getInstance();gc.setTime(date);return gc.get(2) + 1;}/*** 获取本月的开始时间* @return*/public static Date getBeginDayOfMonth() {Calendar calendar=Calendar.getInstance();calendar.set(getNowYear(), getNowMonth()-1, 1);return getDayStartTime(calendar.getTime());}/*** 获取本月的结束时间* @return*/public static Date getEndDayOfMonth() {Calendar calendar=Calendar.getInstance();calendar.set(getNowYear(), getNowMonth()-1, 1);int day = calendar.getActualMaximum(5);calendar.set(getNowYear(), getNowMonth()-1, day);return getDayEndTime(calendar.getTime());}/*** 获取上月的开始时间* @return*/public static Date getBeginDayOfLastMonth() {Calendar calendar=Calendar.getInstance();calendar.set(getNowYear(), getNowMonth()-2, 1);return getDayStartTime(calendar.getTime());}/*** 获取上月的结束时间* @return*/public static Date getEndDayOfLastMonth() {Calendar calendar=Calendar.getInstance();calendar.set(getNowYear(), getNowMonth()-2, 1);int day = calendar.getActualMaximum(5);calendar.set(getNowYear(), getNowMonth()-2, day);return getDayEndTime(calendar.getTime());}/*** 获取本年的开始时间* @return*/public static java.util.Date getBeginDayOfYear() {Calendar cal=Calendar.getInstance();cal.set(Calendar.YEAR, getNowYear());cal.set(Calendar.MONTH, Calendar.JANUARY);cal.set(Calendar.DATE, 1);return getDayStartTime(cal.getTime());}/*** 获取本年的结束时间* @return*/public static java.util.Date getEndDayOfYear() {Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, getNowYear());cal.set(Calendar.MONTH, Calendar.DECEMBER);cal.set(Calendar.DATE, 31);return getDayEndTime(cal.getTime());}/*** 两个日期相减得到的天数* @param beginDate* @param endDate* @return*/public static int getDiffDays(Date beginDate, Date endDate) {if(beginDate==null||endDate==null) {throw new IllegalArgumentException("getDiffDays param is null!");}long diff=(endDate.getTime()-beginDate.getTime())/(1000*60*60*24);int days = new Long(diff).intValue();return days;}/*** 两个日期相减得到的毫秒数* @param beginDate* @param endDate* @return*/public static long dateDiff(Date beginDate, Date endDate) {long date1ms=beginDate.getTime();long date2ms=endDate.getTime();return date2ms-date1ms;}/*** 获取两个日期中的最大日起* @param beginDate* @param endDate* @return*/public static Date max(Date beginDate, Date endDate) {if(beginDate==null) {return endDate;}if(endDate==null) {return beginDate;}if(beginDate.after(endDate)) {//beginDate日期大于endDatereturn beginDate;}return endDate;}/*** 获取两个日期中的最小日期* @param beginDate* @param endDate* @return*/public static Date min(Date beginDate, Date endDate) {if(beginDate==null) {return endDate;}if(endDate==null) {return beginDate;}if(beginDate.after(endDate)) {return endDate;}return beginDate;}/*** 获取某月该季度的第一个月* @param date* @return*/public static Date getFirstSeasonDate(Date date) {final int[] SEASON={ 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 };Calendar cal=Calendar.getInstance();cal.setTime(date);int sean = SEASON[cal.get(Calendar.MONTH)];cal.set(Calendar.MONTH, sean*3-3);return cal.getTime();}/*** 返回某个日期下几天的日期* @param date* @param i* @return*/public static Date getNextDay(Date date, int i) {Calendar cal=new GregorianCalendar();cal.setTime(date);cal.set(Calendar.DATE,cal.get(Calendar.DATE)+i);return cal.getTime();}/*** 返回某个日期前几天的日期* @param date* @param i* @return*/public static Date getFrontDay(Date date, int i) {Calendar cal=new GregorianCalendar();cal.setTime(date);cal.set(Calendar.DATE, cal.get(Calendar.DATE)-i);return cal.getTime();}/*** 获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)* @param beginYear* @param beginMonth* @param k* @return*/@SuppressWarnings({ "unchecked", "rawtypes" })public static List getTimeList(int beginYear, int beginMonth, int k) {List list = new ArrayList();Calendar begincal=new GregorianCalendar(beginYear,beginMonth, 1);int max = begincal.getActualMaximum(Calendar.DATE);for (int i = 1; i < max; i = i + k) {list.add(begincal.getTime());begincal.add(Calendar.DATE, k);}begincal = new GregorianCalendar(beginYear, beginMonth, max);list.add(begincal.getTime());return list;}/*** 获取某年某月到某年某月按天的切片日期集合(间隔天数的集合)* @param beginYear* @param beginMonth* @param endYear* @param endMonth* @param k* @return*/@SuppressWarnings({ "rawtypes", "unchecked" })public static List getTimeList(int beginYear,int beginMonth,int endYear,int endMonth, int k) {List list = new ArrayList();if (beginYear==endYear){for(int j=beginMonth;j<=endMonth;j++){list.add(getTimeList(beginYear,j,k));}}else{{for(int j=beginMonth;j<12;j++){list.add(getTimeList(beginYear,j,k));}for(int i=beginYear+1;i<endYear;i++) {for (int j=0; j<12; j++) {list.add(getTimeList(i,j,k));}}for (int j=0;j <= endMonth; j++) {list.add(getTimeList(endYear, j, k));}}}return list;}//=================================时间格式转换==========================/*** date类型进行格式化输出(返回类型:String)* @param date* @return*/public static String dateFormat(Date date) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(date);return dateString;}/*** 将"2015-08-31 21:08:06"型字符串转化为Date* @param str* @return* @throws ParseException*/public static Date StringToDate(String str) throws ParseException{SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = (Date) formatter.parse(str);return date;}/*** 将CST时间类型字符串进行格式化输出* @param str* @return* @throws ParseException*/public static String CSTFormat(String str) throws ParseException{SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);Date date = (Date) formatter.parse(str);return dateFormat(date);}/*** 将long类型转化为Date* @param str* @return* @throws ParseException*/public static Date LongToDare(long str) throws ParseException{return new Date(str * 1000);}//====================================其他常见日期操作方法======================/*** 判断当前日期是否在[startDate, endDate]区间** @param startDate 开始日期* @param endDate 结束日期* @author jqlin* @return*/public static boolean isEffectiveDate(Date startDate, Date endDate){if(startDate == null || endDate == null){return false;}long currentTime = new Date().getTime();if(currentTime >= startDate.getTime()&& currentTime <= endDate.getTime()){return true;}return false;}/*** 得到二个日期间的间隔天数* @param secondString:后一个日期* @param firstString:前一个日期* @return*/public static String getTwoDay(String secondString, String firstString) {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");long day = 0;try {java.util.Date secondTime = myFormatter.parse(secondString);java.util.Date firstTime = myFormatter.parse(firstString);day = (secondTime.getTime() - firstTime.getTime()) / (24 * 60 * 60 * 1000);} catch (Exception e) {return "";}return day + "";}/*** 时间前推或后推分钟,其中JJ表示分钟.* @param StringTime:时间* @param minute:分钟(有正负之分)* @return*/public static String getPreTime(String StringTime, String minute) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String mydate1 = "";try {Date date1 = format.parse(StringTime);long Time = (date1.getTime() / 1000) + Integer.parseInt(minute) * 60;date1.setTime(Time * 1000);mydate1 = format.format(date1);} catch (Exception e) {return "";}return mydate1;}/*** 将短时间格式字符串转换为时间 yyyy-MM-dd** @param strDate* @return*/public static Date strToDate(String strDate) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(strDate, pos);return strtodate;}/*** 得到一个时间延后或前移几天的时间* @param nowdate:时间* @param delay:前移或后延的天数* @return*/public static String getNextDay(String nowdate, String delay) {try{SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");String mdate = "";Date d = strToDate(nowdate);long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;d.setTime(myTime * 1000);mdate = format.format(d);return mdate;}catch(Exception e){return "";}}/*** 判断是否闰年* @param ddate* @return*/public static boolean isLeapYear(String ddate) {/*** 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年* 3.能被4整除同时能被100整除则不是闰年*/Date d = strToDate(ddate);GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();gc.setTime(d);int year = gc.get(Calendar.YEAR);if ((year % 400) == 0){return true;}else if ((year % 4) == 0){if ((year % 100) == 0){return false;}else{return true;}}else{return false;}}/*** 返回美国时间格式* @param str* @return*/public static String getEDate(String str) {SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");ParsePosition pos = new ParsePosition(0);Date strtodate = formatter.parse(str, pos);String j = strtodate.toString();String[] k = j.split(" ");return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);}/*** 判断二个时间是否在同一个周* @param date1* @param date2* @return*/public static boolean isSameWeekDates(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);if(0 == subYear) {if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){return true;}}else if(1 == subYear && 11 == cal2.get(Calendar.MONTH)) {// 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){return true;}}else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR)){return true;}}return false;}/*** 产生周序列,即得到当前时间所在的年度是第几周* @return*/public static String getSeqWeek() {Calendar c = Calendar.getInstance(Locale.CHINA);String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));if (week.length() == 1)week = "0" + week;String year = Integer.toString(c.get(Calendar.YEAR));return year +"年第"+ week+"周";}/*** 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号* @param sdate:日期* @param num:星期几(星期天是一周的第一天)* @return*/public static String getWeek(String sdate, String num) {// 再转换为时间Date dd = strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(dd);if (num.equals("1")) // 返回星期一所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);else if (num.equals("2")) // 返回星期二所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);else if (num.equals("3")) // 返回星期三所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);else if (num.equals("4")) // 返回星期四所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);else if (num.equals("5")) // 返回星期五所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);else if (num.equals("6")) // 返回星期六所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);else if (num.equals("0")) // 返回星期日所在的日期c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());}/*** 根据一个日期,返回是星期几的字符串* @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;}/*** 两个时间之间的天数* @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;}/*** 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间* 此函数返回该日历第一行星期日所在的日期* @param sdate* @return*/public static String getNowMonth(String sdate) {// 取该时间所在月的一号sdate = sdate.substring(0, 8) + "01";// 得到这个月的1号是星期几Date date = strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(date);int u = c.get(Calendar.DAY_OF_WEEK);String newday = getNextDay(sdate, (1 - u) + "");return newday;}/*** 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写* @param sformat* @return*/public static String getUserDate(String sformat) {Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat(sformat);String dateString = formatter.format(currentTime);return dateString;}/*** 返回一个i位数的随机数* @param i* @return*/public static String getRandom(int i) {Random jjj = new Random();// int suiJiShu = jjj.nextInt(9);if (i == 0)return "" +"";String jj = "";for (int k = 0; k < i; k++) {jj = jj + jjj.nextInt(9);}return jj;}/*** 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数* @param k:表示是取几位随机数,可以自己定* @return*/public static String getNo(int k) {return getUserDate("yyyyMMddhhmmss") + getRandom(k);}public static void main(String[] args) {System.out.println(getNo(8));}
}

http://chatgpt.dhexx.cn/article/wyuMEN0Y.shtml

相关文章

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;数据集主要内容是关…

基于用户的协同过滤Movielens电影推荐系统简单实例

基于用户的协同过滤Movielens电影推荐系统简单实例 一、Movielens数据集 1. MovieLens数据集的下载&#xff08;Download&#xff09; 1&#xff09; 从网站下载数据 链接: https://grouplens.org/datasets/movielens/. 有好几种版本&#xff0c;对应不同数据量&#xff0c;…

ML之GB:基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库+Cypher查询语言)实现对用户进行Top5电影推荐案例

ML之GB&#xff1a;基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库Cypher查询语言)实现对用户进行Top5电影推荐案例 目录 基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库Cypher查询语言)实现对用户进行Top5电影推荐案例 1、定义数据集 1.…

从IMDB上爬取MovieLens-1m的补充数据(电影海报和简介)

文章主要内容 本人是想做推荐算法相关的一名在校生&#xff0c;目前想做多模态融合&#xff0c;而MovieLens-1m数据集只有电影信息和用户信息&#xff0c;于是有想法能否在原有的电影推荐公开数据集中而外获取电影海报&#xff08;图片信息&#xff09;和电影简介&#xff08;…