一、java 时间操作工具类

import org.springframework.util.StringUtils;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;/*** 时间操作工具类** @author zwq**/
public class TimeFrameUtil {/*** 获取今天的时间范围* @return 返回长度为2的字符串集合,如:[2017-11-03 00:00:00, 2017-11-03 24:00:00]*/public static List<String> getTodayRange() {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());calendar.add(Calendar.DATE, 0);String today = dateFormat.format(calendar.getTime());dataList.add(today + " 00:00:00");dataList.add(today + " 24:00:00");return dataList;}/*** 获取昨天的时间范围* @return 返回长度为2的字符串集合,如:[2017-11-02 00:00:00, 2017-11-02 24:00:00]*/public static List<String> getYesterdayRange() {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());calendar.add(Calendar.DATE, -1);String yesterday = dateFormat.format(calendar.getTime());dataList.add(yesterday + " 00:00:00");dataList.add(yesterday + " 24:00:00");return dataList;}/*** 获取本周的时间范围* @return 返回长度为2的字符串集合,如:[2017-10-30 00:00:00, 2017-11-05 24:00:00]*/public static List<String> getCurrentWeekRange() {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setFirstDayOfWeek(Calendar.MONDAY);//设置周一为一周之内的第一天
        calendar.setTimeInMillis(System.currentTimeMillis());calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);String monday = dateFormat.format(calendar.getTime()) + " 00:00:00";calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);String sunday = dateFormat.format(calendar.getTime()) + " 24:00:00";dataList.add(monday);dataList.add(sunday);return dataList;}/*** 获取本周的时间范围(不带时分秒)* @return 返回长度为2的字符串集合,如:[2017-10-30, 2017-11-05]*/public static List<String> getCurrentWeekRangeNoTime() {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setFirstDayOfWeek(Calendar.MONDAY);//设置周一为一周之内的第一天
        calendar.setTimeInMillis(System.currentTimeMillis());calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);String monday = dateFormat.format(calendar.getTime());calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);String sunday = dateFormat.format(calendar.getTime());dataList.add(monday);dataList.add(sunday);return dataList;}/*** 获取本月的时间范围* @return 返回长度为2的字符串集合,如:[2017-11-01 00:00:00, 2017-11-30 24:00:00]*/public static List<String> getCurrentMonthRange() {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());calendar.add(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_MONTH, 1);String firstDayOfMonth = dateFormat.format(calendar.getTime()) + " 00:00:00";calendar.add(Calendar.MONTH, 1);calendar.set(Calendar.DAY_OF_MONTH, 0);String lastDayOfMonth = dateFormat.format(calendar.getTime()) + " 24:00:00";dataList.add(firstDayOfMonth);dataList.add(lastDayOfMonth);return dataList;}/*** 获取本年的时间范围* @return 返回长度为2的字符串集合,如:[2017-01-01 00:00:00, 2017-12-31 24:00:00]*/public static List<String> getCurrentYearRange() {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());calendar.add(Calendar.YEAR, 0);calendar.set(Calendar.DAY_OF_YEAR, 1);String firstDayOfYear = dateFormat.format(calendar.getTime()) + " 00:00:00";calendar.add(Calendar.YEAR, 1);calendar.set(Calendar.DAY_OF_YEAR, 0);String lastDayOfYear = dateFormat.format(calendar.getTime()) + " 24:00:00";dataList.add(firstDayOfYear);dataList.add(lastDayOfYear);return dataList;}/*** 获取最近几天的时间范围* @param lastFewDays 最近多少天* @return 返回长度为2的字符串集合,如:[2017-12-25 17:15:33, 2017-12-26 17:15:33]*/public static List<String> getLastFewDaysRange(int lastFewDays) {List<String> dataList = new ArrayList<>(2);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());String endTime = dateFormat.format(calendar.getTime());calendar.add(Calendar.DATE, -lastFewDays);String startTime = dateFormat.format(calendar.getTime());dataList.add(startTime);dataList.add(endTime);return dataList;}/*** 获取当前时间* @param pattern 指定返回当前时间的格式,例:"yyyy-MM-dd HH:mm:ss"* @return 返回指定格式的当前时间,如:"2018-01-25 10:14:30"*/public static String getCurrentTime(String pattern) {String currentTime;SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(System.currentTimeMillis());currentTime = dateFormat.format(calendar.getTime());return currentTime;}/**** 将指定时间偏移几小时* @param time 指定时间,精确到分,例:"2018-01-25 10:48"* @param offset 偏移量:负数代表减几个小时,正数代表加几个小时,例:1* @return 返回偏移后的时间,如:"2018-01-25 11:48"* @throws ParseException*/public static String offsetHours(String time, int offset) throws ParseException {String offsetHours = null;if (StringUtils.hasText(time)) {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");Calendar calendar = Calendar.getInstance();calendar.setTime(dateFormat.parse(time));calendar.add(Calendar.MINUTE, offset);offsetHours = dateFormat.format(calendar.getTime());}return offsetHours;}/*** 将指定月份偏移几个月* @param month 指定月份* @param offset 偏移量:负数代表上几个月,正数代表下几个月* @return 返回偏移后的月份,如:2018-01* @throws ParseException*/public static String offsetMonths(String month, int offset) throws ParseException {String offsetMonth = null;if (StringUtils.hasText(month)) {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");Calendar calendar = Calendar.getInstance();calendar.setTime(dateFormat.parse(month));calendar.add(Calendar.MONTH, offset);offsetMonth = dateFormat.format(calendar.getTime());}return offsetMonth;}/*** 获取指定日期是星期几(设置星期一为一周的开始)* @param day 指定日期* @return 返回星期几,如:1* @throws ParseException*/public static int getDayOfWeek(String day) throws ParseException {int dayOfWeek = 0;if (StringUtils.hasText(day)) {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setTime(dateFormat.parse(day));calendar.add(Calendar.DATE, -1); //在指定日期的基础上减一天,满足中国人的习惯dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);}return dayOfWeek;}/*** 获取指定月份有多少天* @param month 指定月份* @return 返回天数,如:31* @throws ParseException*/public static int getDaysInMonth(String month) throws ParseException {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");Calendar calendar = Calendar.getInstance();calendar.setTime(dateFormat.parse(month));calendar.add(Calendar.MONTH, 1);calendar.set(Calendar.DAY_OF_MONTH, 0);return calendar.get(Calendar.DAY_OF_MONTH);}}

二、javascript 时间操作工具类

/*** 时间操作工具类** @author zwq**/
var TimeFrameUtil = {/*** 格式化日期* @param date {Date} 日期* @param pattern {string} 格式,例:"yyyy-MM-dd HH:mm:ss"* @returns {String} 返回格式化后的日期,如:"2018-01-22 18:04:30"*/format : function (date, pattern) {var time = {"M+": date.getMonth() + 1,"d+": date.getDate(),"H+": date.getHours(),"m+": date.getMinutes(),"s+": date.getSeconds(),"q+": Math.floor((date.getMonth() + 3) / 3),"S+": date.getMilliseconds()};if (/(y+)/i.test(pattern)) {pattern = pattern.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));}for (var k in time) {if (new RegExp("(" + k + ")").test(pattern)) {pattern = pattern.replace(RegExp.$1, RegExp.$1.length == 1 ? time[k] : ("00" + time[k]).substr(("" + time[k]).length));}}return pattern;},/*** 将指定时间偏移几小时* @param time {String} 指定时间,例:"2018-01-24 17:00"* @param offset {Number} 偏移量,正数代表加几小时,负数代表减几小时,例:1* @param pattern {String} 返回时间的格式,例:"yyyy-MM-dd HH:mm"* @returns {String} 返回计算后的时间,如:"2018-01-24 18:00"*/offsetHours : function (time, offset, pattern) {var date = new Date(Date.parse(time));var yyyy = date.getFullYear();var MM = date.getMonth();var dd = date.getDate();var HH = date.getHours() + offset;var mm = date.getMinutes();var ss = date.getSeconds();return this.format(new Date(yyyy, MM, dd, HH, mm, ss), pattern);},/*** 将指定月份偏移几个月* @param month {String} 指定月份,例:"2018-01"* @param offset {Number} 偏移量,负数代表上几个月,正数代表下几个月,例:1* @returns {String} 返回计算后的月份,如:"2018-02"*/offsetMonths : function (month, offset) {var date = new Date(Date.parse(month));var year = date.getFullYear();var month = date.getMonth();var preOrNextMonth = month + offset;return this.format(new Date(year, preOrNextMonth), "yyyy-MM");},/*** 获取指定日期是星期几* @param date {String} 指定日期,例:"2018-01-23"* @returns {Number} 返回星期几(1-7),如:2*/dayOfWeek : function (date) {var time = new Date(Date.parse(date));var weekday=new Array(7);weekday[0]= 7;weekday[1]= 1;weekday[2]= 2;weekday[3]= 3;weekday[4]= 4;weekday[5]= 5;weekday[6]= 6;return weekday[time.getDay()];},/*** 获取指定月份有多少天* @param month {String} 指定月份:例"2018-01"* @returns {number} 返回指定月份有多少天,如:31*/daysInMonth : function (month) {var date = new Date(Date.parse(month));var year = date.getFullYear();var month = date.getMonth();if (month == 1) {if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return 29;elsereturn 28;} else if ((month <= 6 && month % 2 == 0) || (month > 6 && month % 2 == 1))return 31;elsereturn 30;}
};

转载于:https://www.cnblogs.com/zhuwenqi2016/p/7779648.html

java/javascript 时间操作工具类相关推荐

  1. 超详细的Java常用时间操作工具类

    import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java ...

  2. Java时间操作工具类

    为什么80%的码农都做不了架构师?>>>    package com.hh.util;import java.text.ParseException; import java.te ...

  3. java的时间日期类_Java基础学习:日期时间类

    Date 类 所在的包:java.util.Date Date 类表示特定的瞬间,精确到毫秒.创建对象的值为从1970年1月1日00:00:00 到当前系统显示时间所经历的毫秒数. 例如:public ...

  4. java常用时间工具类

    /*** LocalDateTime工具类** @author Code13* @date 2019-11-10 21:10*/ public final class LocalDateTimeUti ...

  5. java基础集合操作工具类Collections简述(java集合四)

    对集合中的元素进行排序 Collections中的sort方法使用 public class ListDemo {public static void main(String[] args) {Lis ...

  6. 关于时间操作工具类整理

    package com.hz.util.date; import java.sql.Timestamp; import java.text.ParseException; import java.te ...

  7. Java DateUtil 时间工具类

    import org.apache.commons.lang3.StringUtils;import java.math.BigDecimal; import java.text.DateFormat ...

  8. java android时间工具类 week 月年

    倒数第二张是优化了一下添加数据的格式把月份也加到list里面了  最主要的判断就是<8的判断天数  拿到上个月或者本月的月份数据

  9. 我的日期工具类、java常见时间的处理方法

    标题 SimpleDateFormat类到底为啥不是线程安全的? Calendar类roll和add的区别 我的时间操作工具类 判断日期是否是今天,本周,本月,本季度,本年 获取手动设置指定日期 返回 ...

最新文章

  1. 作为一个java程序员,常用的linux命令(越攒越多)
  2. mpvue 小程序如何开启下拉刷新,上拉加载?
  3. hihocoder #1333 : 平衡树·Splay2
  4. c语言数组数据的输入,在C语言中,数组中的值如何输入到函数中?
  5. Python-技术篇-使用logging模块打印详细报错日志,获取报错信息位置行数方法
  6. csdn中使用Git的一些注意问题
  7. jQuery的实现原理
  8. linux-简单进程查询
  9. 【script】python实现多线程将doc、docx转pdf,doc转docx
  10. 使用Pycharm运行TensorFlow,Virtualenv安装TensorFlow
  11. [CodeForces - 276A] Lunch Rush
  12. 三维模型免费查看器(AnyCAD Viewer)
  13. 全民健身下的体育消费,是怎么升级的?
  14. Renesas:定时器输入捕获
  15. jq获取内容ajax传递数据库,使用php和jquery ajax从mysql数据库中获取数据
  16. 轩小陌的Python笔记-day08 模块一总结
  17. 微信预约 php,php版微信公众平台实现预约提交后发送email的方法
  18. big5转utf-8乱码解决方案
  19. 读薄《深入理解 Java 虚拟机》 JVM 的内存分配策略
  20. cuda无法使用nvprof命令,找不到cupti64_2021_3.0.dll

热门文章

  1. emlog_toolkit.php,emlog 4.0版本IIS6下伪静态划定规矩
  2. php中define的参数_php中define的用法有哪些
  3. d3.js html显示图片,d3.js v4:如何在鼠标点击节点后显示图像
  4. mysql for 语句执行顺序_MySQL使用profile分析SQL语句执行过程
  5. python123九宫格输入法_《啊哈C语言-2016最新修正版》.pdf
  6. C++语言程序设计上机指导(二级),C++语言程序设计上机指导(二级)
  7. 馀承东发布鸿蒙,鸿蒙系统一无是处?鸿蒙有何优势?
  8. vscode设置templates_在VScode中创建你的代码模板的方法
  9. 《软件项目管理(第二版)》第 9 章——项目监督与控制 重点部分总结
  10. ERDAS IMAGINE 2015安装步骤(绝对正确,不正确,我给你远程安装)