精华内容
参与话题
问答
  • javascript Date format(js日期格式化)

    万次阅读 多人点赞 2010-06-02 19:04:00
    这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用...

    方法一:这个很不错,好像是 csdn 的 Meizz 写的:

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o) if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return fmt; }

     

     

    调用方法:

    var time1 = new Date().format("yyyy-MM-dd HH:mm:ss"); var time2 = new Date().format("yyyy-MM-dd");

     

    方法二:

    <mce:script language="javascript" type="text/javascript"><!-- /** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 */ Date.prototype.pattern=function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时 "H+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth()+3)/3), //季度 "S" : this.getMilliseconds() //毫秒 }; var week = { "0" : "/u65e5", "1" : "/u4e00", "2" : "/u4e8c", "3" : "/u4e09", "4" : "/u56db", "5" : "/u4e94", "6" : "/u516d" }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } if(/(E+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[this.getDay()+""]); } for(var k in o){ if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; } var date = new Date(); window.alert(date.pattern("yyyy-MM-dd hh:mm:ss")); // --></mce:script>

     

    方法三:

    Date.prototype.format = function(mask) { var d = this; var zeroize = function (value, length) { if (!length) length = 2; value = String(value); for (var i = 0, zeros = ''; i < (length - value.length); i++) { zeros += '0'; } return zeros + value; }; return mask.replace(/"[^"]*"|'[^']*'|/b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])/1?|[lLZ])/b/g, function($0) { switch($0) { case 'd': return d.getDate(); case 'dd': return zeroize(d.getDate()); case 'ddd': return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()]; case 'dddd': return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()]; case 'M': return d.getMonth() + 1; case 'MM': return zeroize(d.getMonth() + 1); case 'MMM': return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()]; case 'MMMM': return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()]; case 'yy': return String(d.getFullYear()).substr(2); case 'yyyy': return d.getFullYear(); case 'h': return d.getHours() % 12 || 12; case 'hh': return zeroize(d.getHours() % 12 || 12); case 'H': return d.getHours(); case 'HH': return zeroize(d.getHours()); case 'm': return d.getMinutes(); case 'mm': return zeroize(d.getMinutes()); case 's': return d.getSeconds(); case 'ss': return zeroize(d.getSeconds()); case 'l': return zeroize(d.getMilliseconds(), 3); case 'L': var m = d.getMilliseconds(); if (m > 99) m = Math.round(m / 10); return zeroize(m); case 'tt': return d.getHours() < 12 ? 'am' : 'pm'; case 'TT': return d.getHours() < 12 ? 'AM' : 'PM'; case 'Z': return d.toUTCString().match(/[A-Z]+$/); // Return quoted strings with the surrounding quotes removed default: return $0.substr(1, $0.length - 2); } }); };

    展开全文
  • new Date() 日期格式处理

    万次阅读 多人点赞 2017-12-25 16:09:16
    console.log("result:"+toHDate(new Date().getTime()/1000).replace(/\:\d\d$/,'')); function toHDate(sec) { var d=new Date(); d.setTime(parseInt(sec)*1000); var str=d.getFullYear()+"-"+numForm

    Date 对象常用API

    var myDate = new Date();  
    myDate.getYear(); //获取当前年份(2位)  
    myDate.getFullYear(); //获取完整的年份(4位,1970-????)  
    myDate.getMonth(); //获取当前月份(0-11,0代表1月) 所以获取当前月份是 myDate.getMonth()+1;   
    myDate.getDate(); //获取当前日(1-31)  
    myDate.getDay(); //获取当前星期X(0-6,0代表星期天)  
    myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)  
    myDate.getHours(); //获取当前小时数(0-23)  
    myDate.getMinutes(); //获取当前分钟数(0-59)  
    myDate.getSeconds(); //获取当前秒数(0-59)  
    myDate.getMilliseconds(); //获取当前毫秒数(0-999)  
    myDate.toLocaleDateString(); //获取当前日期  
    var mytime = myDate.toLocaleTimeString(); //获取当前时间  
    myDate.toLocaleString( ); //获取日期与时间  
    

    JS获取当前时间戳的方法:

    Date.parse(new Date()); // 不推荐; 毫秒改成了000显示  
    new Date().valueOf();
    new Date().getTime();
    +new Date().getTime();
    

    js中单独调用 new Date(); 显示这种格式Fri Aug 28 2020 11:03:24 GMT+0800 (中国标准时间)
    但是用 new Date() 参与计算会自动转换为从 1970.1.1 开始的毫秒数

    将字符串形式的日期转换成日期对象:

    var strTime="2011-04-16"; // 字符串日期格式             
    var date= new Date(Date.parse(strTime.replace(/-/g,  "/"))); // 转换成 Data();  
      
    new Date(); // 参数可以为整数; 也可以为字符串; 但格式必须正确  
    new Date(2009,1,1);
    new Date("2009/1/1");
    new Date("2009-1-1"); 
      
    new Date( year, month, date, hrs, min, sec)  // 按给定的参数创建一日期对象   
    

    1.日期格式转为日期标准字符串:2015-03-19

    var formatDate = function (date) {  
        var y = date.getFullYear();  
        var m = date.getMonth() + 1;  
        m = m < 10 ? '0' + m : m;  
        var d = date.getDate();  
        d = d < 10 ? ('0' + d) : d;  
        return y + '-' + m + '-' + d;  
    };  
    

    2.js方法返回值:2015-03-19 12:00:00

    var formatDateTime = function (date) {  
                    var y = date.getFullYear();  
                    var m = date.getMonth() + 1;  
                    m = m < 10 ? ('0' + m) : m;  
                    var d = date.getDate();  
                    d = d < 10 ? ('0' + d) : d;  
                    var h = date.getHours();  
                    h=h < 10 ? ('0' + h) : h;  
                    var minute = date.getMinutes();  
                    minute = minute < 10 ? ('0' + minute) : minute;  
                    var second=date.getSeconds();  
                    second=second < 10 ? ('0' + second) : second;  
                    return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;  
                };  
    

    3.时间戳转为日期格式

    //时间戳转日期格式  
          var formatDateTime3 = function(time, format){  
              var t = new Date(time);  
              var tf = function(i){return (i < 10 ? '0' : '') + i};  
              return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){  
                  switch(a){  
                      case 'yyyy':  
                          return tf(t.getFullYear());  
                          break;  
                      case 'MM':  
                          return tf(t.getMonth() + 1);  
                          break;  
                      case 'mm':  
                          return tf(t.getMinutes());  
                          break;  
                      case 'dd':  
                          return tf(t.getDate());  
                          break;  
                      case 'HH':  
                          return tf(t.getHours());  
                          break;  
                      case 'ss':  
                          return tf(t.getSeconds());  
                          break;  
                  }  
              })  
          };  
    

    4.时间格式字符串转为时间戳(毫秒)

    var time1=2016-01-01 17:22:37’;  
    var date=new Date(time1.replace(/-/g, '/'));  //开始时间  
    var time2=date.getTime();  
    

    如何将2015-03-12 12:00 转换成标准时间()?

    // 调用:parserDate("2015-03-19 12::00:00")
    var parserDate = function (date) {  
        var t = Date.parse(date);  
        if (!isNaN(t)) {  
            return new Date(Date.parse(date.replace(/-/g, "/")));  
        } else {  
            return new Date();  
        }  
    }; 
    

    转自不忘初心:http://blog.csdn.net/tomcat_2014/article/details/50514979

    补充:
    写一个vue plugin 用于格式化日期时间:

    export function prefixZero (num, n) {
        return (Array(n).join(0) + num).slice(-n);
    } 
    
    /**
     * @param {String | Number} date 当前时间
     * @param {String} format 格式化格式
     *
     * usage:
     *	dateFormatter('2011/1/12 12:12:22', 'yyyy-MM-dd HH:mm:ss')
     * 	dateFormatter(1294805542000, 'yyyy-MM-dd HH:mm:ss')
     */
    export function dateFormatter (date, format) {
      const t = new Date(date)
      console.log(t)
      if (t.toString() === 'Invalid Date') { return 'invalid date' }
      return format.replace(/yyyy|MM|M|WW|W|ww|w|dd|d|HH|H|hh|h|mm|m|ss|s|A|a/g, function(a){  
        switch(a){  
          case 'yyyy': // 年 2011
            return prefixZero(t.getFullYear(), 4);
          case 'MM': 	// 月 01
            return prefixZero(t.getMonth() + 1, 2);
          case 'M': 	// 月 1
            return t.getMonth() + 1;
          case 'WW': 	// 周 01
            return prefixZero(t.getDay(), 2);
          case 'W': 	// 周 1
            return t.getDay();
          case 'ww': 	// 周 星期一
            return "星期" + "日一二三四五六".charAt(t.getDay());
          case 'w': 	// 周 周一
            return "周" + "日一二三四五六".charAt(t.getDay());
          case 'dd': 	// 日 02
            return prefixZero(t.getDate(), 2);
          case 'd': 	// 日 2
            return prefixZero(t.getDate(), 2);
          case 'HH':  // 小时 24小时制 03
            return prefixZero(t.getHours(), 2);
          case 'H':  	// 小时 24小时制 3
            return prefixZero(t.getHours(), 2);
          case 'hh':  // 小时 12小时制 03
            return prefixZero(t.getHours() % 12, 2);
          case 'h':  	// 小时 12小时制 3
            return prefixZero(t.getHours() % 12, 2);
          case 'mm':  // 分钟 04
            return prefixZero(t.getMinutes(), 2);
          case 'm':  	// 分钟 4
            return t.getMinutes();
          case 'ss':  // 秒 05
            return prefixZero(t.getSeconds(), 2);
          case 's':  	// 秒 5
            return t.getSeconds();
          case 'A':  
            return t.getHours() < 12 ? 'AM' : 'PM';
          case 'a':  
            return t.getHours() < 12 ? 'am' : 'pm'; 
        }  
      })  
    }
    
    const dateFormat = {
      install: function (vue) {
        vue.prototype.$dateFormatter = dateFormatter
        vue.filter('date', dateFormatter)
      }
    }
    export default dateFormat
    
    展开全文
  • Java Calendar 日历类的时间操作,这也许是 Java 环境下创建和管理日历及操作时间最简单的一个方案了,示范代码也很简单。 演示了获取时间,日期时间的累加和累减,以及日期时间的比较。 原文地址:blog.csdn.net/...

    Java Calendar 日历类的时间操作,这也许是 Java 环境下创建和管理日历及操作时间最简单的一个方案了,示范代码也很简单。

    演示了获取时间,日期时间的累加和累减,以及日期时间的比较。

    原文地址:blog.csdn.net/joyous/article/details/9630893

    注意事项:

    Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。

    而 Calendar.DAY_OF_WEEK 定义值如下,每周从 SUNDAY 开始,从 1 ~ 7:

    Calendar.SUNDAY = 1
    Calendar.MONDAY = 2
    Calendar.TUESDAY = 3
    Calendar.WEDNESDAY = 4
    Calendar.THURSDAY = 5
    Calendar.FRIDAY = 6
    Calendar.SATURDAY = 7

    SimpleDateFormat 的格式定义

     

    Letter Date or Time Component Presentation Examples
    G Era designator Text AD
    y Year Year 199696
    Y Week year Year 200909
    M Month in year (context sensitive) Month JulyJul07
    L Month in year (standalone form) Month JulyJul07
    w Week in year Number 27
    W Week in month Number 2
    D Day in year Number 189
    d Day in month Number 10
    F Day of week in month Number 2
    E Day name in week Text TuesdayTue
    u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
    a Am/pm marker Text PM
    H Hour in day (0-23) Number 0
    k Hour in day (1-24) Number 24
    K Hour in am/pm (0-11) Number 0
    h Hour in am/pm (1-12) Number 12
    m Minute in hour Number 30
    s Second in minute Number 55
    S Millisecond Number 978
    z Time zone General time zone Pacific Standard TimePSTGMT-08:00
    Z Time zone RFC 822 time zone -0800
    X Time zone ISO 8601 time zone -08-0800-08:00

     

    Java Calendar 演示代码如下:

     

    package demo;
    
    import java.util.Date;
    import java.text.SimpleDateFormat;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.util.Calendar;
    
    public class Test
    {
      public Test()
      {
      }
    
      public static void main(String[] args)
      {
        // 字符串转换日期格式
        // DateFormat fmtDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 接收传入参数
        // String strDate = args[1];
        // 得到日期格式对象
        // Date date = fmtDateTime.parse(strDate);
    
        // 完整显示今天日期时间
        String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());
        System.out.println(str);
    
        // 创建 Calendar 对象
        Calendar calendar = Calendar.getInstance();
    
        try
        {
          // 对 calendar 设置时间的方法
          // 设置传入的时间格式
          SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d H:m:s");
          // 指定一个日期
          Date date = dateFormat.parse("2013-6-1 13:24:16");
          // 对 calendar 设置为 date 所定的日期
          calendar.setTime(date);
    
          // 按特定格式显示刚设置的时间
          str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
          System.out.println(str);
        }
        catch (ParseException e)
        {
          e.printStackTrace();
        }
    
        // 或者另一種設置 calendar 方式
        // 分別爲 year, month, date, hourOfDay, minute, second
        calendar = Calendar.getInstance();
        calendar.set(2013, 1, 2, 17, 35, 44);
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
        System.out.println(str);
    
        // Calendar 取得当前时间的方法
        // 初始化 (重置) Calendar 对象
        calendar = Calendar.getInstance();
        // 或者用 Date 来初始化 Calendar 对象
        calendar.setTime(new Date());
    
        // setTime 类似上面一行
        // Date date = new Date();
        // calendar.setTime(date);
    
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(calendar.getTime());
        System.out.println(str);
    
        // 显示年份
        int year = calendar.get(Calendar.YEAR);
        System.out.println("year is = " + String.valueOf(year));
    
        // 显示月份 (从0开始, 实际显示要加一)
        int month = calendar.get(Calendar.MONTH);
        System.out.println("nth is = " + (month + 1));
    
        // 本周几
        int week = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println("week is = " + week);
    
        // 今年的第 N 天
        int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);
    
        // 本月第 N 天
        int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));
    
        // 3小时以后
        calendar.add(Calendar.HOUR_OF_DAY, 3);
        int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);
        System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);
    
        // 当前分钟数
        int MINUTE = calendar.get(Calendar.MINUTE);
        System.out.println("MINUTE = " + MINUTE);
    
        // 15 分钟以后
        calendar.add(Calendar.MINUTE, 15);
        MINUTE = calendar.get(Calendar.MINUTE);
        System.out.println("MINUTE + 15 = " + MINUTE);
    
        // 30分钟前
        calendar.add(Calendar.MINUTE, -30);
        MINUTE = calendar.get(Calendar.MINUTE);
        System.out.println("MINUTE - 30 = " + MINUTE);
    
        // 7天前
        calendar.add(Calendar.DAY_OF_YEAR, -7);
        // 显示当月 x 号
        int day_of_month = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("day_of_month -7 = " + day_of_month);
    
        // 格式化显示
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);
    
        // 重置 Calendar 显示当前时间
        calendar.setTime(new Date());
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);
    
        // 创建一个 Calendar 用于比较时间
        Calendar calendarNew = Calendar.getInstance();
    
        // 设定为 5 小时以前,后者大,显示 -1
        calendarNew.add(Calendar.HOUR, -5);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
        // 设定7小时以后,前者大,显示 1
        calendarNew.add(Calendar.HOUR, +7);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
        // 退回 2 小时,时间相同,显示 0
        calendarNew.add(Calendar.HOUR, -2);
        System.out.println("时间比较:" + calendarNew.compareTo(calendar));
      }
    }

    运行结果

    2013-06-07 23:27:34:195
    2013-06-01 13:24:16:000
    2013-02-02 17:35:44:197
    2013-06-07 23:27:34:197
    year is = 2013
    nth is = 6
    week is = 6
    DAY_OF_YEAR is = 158
    DAY_OF_MONTH = 7
    HOUR_OF_DAY + 3 = 2
    MINUTE = 27
    MINUTE + 15 = 42
    MINUTE - 30 = 12
    2013-06-08 02:12:34:197
    2013-06-07 23:27:34:199
    时间比较:-1
    时间比较:1
    时间比较:0

    要计算时间差,可用 Calendar.getTimeInMillis() 取得两个时间的微秒级的时间差,再加以换算即可,比如获得相差天数,代码如下:

        // 得微秒级时间差
        long val = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis();
        // 换算后得到天数
        long day = val / (1000 * 60 * 60 * 24);
    

    其他与 date 相关的类型转换代码如下。

    Timestamp 类型转换为 Date 类型:

    Timestamp stamp = new Timestamp(System.currentTimeMillis());
    Date date = new Date(stamp.getTime());
    System.out.println(date);

    Timestamp 类型转换为 Calendar 类型:

    // 获取 Timestamp 类型时间
    Timestamp timestamp = new Timestamp(System.currentTimeMillis());
    
    // 转换为 Calendar 类型,SUN 也推荐用 Calendar 处理时间信息
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(timestamp.getTime());

    Date 类型转换为 Calendar 类型:

    // Date 向 Calendar 赋值
    calendar.setTime(date);

    Calendar 类型转换为 Timestamp 类型:

    // 创建 Calendar 对象,也同时获取了当前时间
    Calendar calendar = Calendar.getInstance();
    
    // 转换为 Timestamp 类型对象
    Timestamp timestamp = new Timestamp(calendar.getTimeInMillis());
    System.out.println(timestamp);

    Calendar 类型转换为 Date 类型:

    // Calendar 对象类型转换为 Date 对象类型
    Calendar calendar = Calendar.getInstance();
    java.util.Date date = calendar.getTime();
    System.out.println(date);

    StringDate 转换为 Date 或者 Timestamp

    /* 将字符串日期或者日期时间转换为 timestamp 格式 */
    try
      {
        // 一个字符串日期
        String strDate = "2020-01-31";
    
        // 设置传入格式
        // yyyy-MM-dd 或者完整的 yyyy-MM-dd HH:mm:ss
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = dateFormat.parse(strDate);
    
        // 创建 Calendar 用于处理 date 对象
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
    
        // 由 calendar 对象生成 timestamp
        Timestamp timestamp = new Timestamp(calendar.getTimeInMillis());
        System.out.printf(timestamp);
      }
      catch (Exception e)
      {
        e.printStackTrace();
      }

    原文地址:blog.csdn.net/joyous/article/details/9630893

    https://blog.inull.net
    Q群讨论 236201801

    展开全文
  • Java.Utils:Date时间工具类

    万次阅读 2020-02-13 18:30:06
    package ... import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;...import java.util.Date; /** * @description:...
    package com.bood.common.utils;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * <p>
     * Date 时间工具类
     * </p>
     *
     * @author:bood
     * @date:2020/10/16
     */
    public class DateUtils {
    
        private final static SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
    
        private final static SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");
    
        private final static SimpleDateFormat sdfDays = new SimpleDateFormat("yyyyMMdd");
    
        private final static SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        private final static SimpleDateFormat sdfTimeString = new SimpleDateFormat("yyyyMMddHHmmss");
    
        private DateUtils() {
        }
        
        /**
         * 获取 YYYY 格式
         *
         * @return yyyy
         */
        public static String getYear() {
            return sdfYear.format(new Date());
        }
    
        /**
         * 获取 YYYY-MM-DD 格式
         *
         * @return YYYY-MM-DD
         */
        public static String getDay() {
            return sdfDay.format(new Date());
        }
    
        /**
         * 获取 YYYYMMDD 格式
         *
         * @return YYYYMMDD
         */
        public static String getDays() {
            return sdfDays.format(new Date());
        }
    
        /**
         * 获取 YYYY-MM-DD HH:mm:ss 格式
         *
         * @return YYYY-MM-DD HH:mm:ss
         */
        public static String getTime() {
            return sdfTime.format(new Date());
        }
    
        /**
         * 获取 YYYYMMDDHHmmss 格式
         *
         * @return YYYYMMDDHHmmss
         */
        public static String getTimeString() {
            return sdfTimeString.format(new Date());
        }
    
        /**
         * <p>
         * 日期比较,如果s > = e 返回 true 否则返回 false
         * </p>
         *
         * @param s:
         * @param e:
         * @return:boolean
         * @author:bood
         * @date:2020/10/16
         */
        public static boolean compareDate(String s, String e) {
            if (fomatDate(s) == null || fomatDate(e) == null) {
                return false;
            }
            return fomatDate(s).getTime() >= fomatDate(e).getTime();
        }
    
        /**
         * <p>
         * 格式化日期
         * </p>
         *
         * @param date:
         * @return:java.util.Date
         * @author:bood
         * @date:2020/10/16
         */
        public static Date fomatDate(String date) {
            DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
            try {
                return fmt.parse(date);
            } catch (ParseException e) {
                e.printStackTrace();
                return null;
            }
        }
    
        /**
         * <p>
         * 校验日期是否合法
         * </p>
         *
         * @param s:
         * @return:boolean
         * @author:bood
         * @date:2020/10/16
         */
        public static boolean isValidDate(String s) {
            DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
            try {
                fmt.parse(s);
                return true;
            } catch (Exception e) {
                // 如果 throw java.text.ParseException 或者 NullPointerException,就说明格式不对
                return false;
            }
        }
    
        /**
         * <p>
         * 时间相减得到年数
         * </p>
         *
         * @param startTime:
         * @param endTime:
         * @return:int
         * @author:bood
         * @date:2020/10/16
         */
        public static int getDiffYear(String startTime, String endTime) {
            DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
            try {
                int years = (int) (((fmt.parse(endTime).getTime() - fmt.parse(startTime).getTime()) / (1000 * 60 * 60 * 24)) / 365);
                return years;
            } catch (Exception e) {
                // 如果 throw java.text.ParseException 或者 NullPointerException,就说明格式不对
                return 0;
            }
        }
    
        /**
         * <p>
         * 时间相减得到天数
         * </p>
         *
         * @param beginDateStr:
         * @param endDateStr:
         * @return:long
         * @author:bood
         * @date:2020/10/16
         */
        public static long getDaySub(String beginDateStr, String endDateStr) {
            long day = 0;
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Date beginDate = null;
            Date endDate = null;
    
            try {
                beginDate = format.parse(beginDateStr);
                endDate = format.parse(endDateStr);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);
            // System.out.println("相隔的天数="+day);
            return day;
        }
    
        /**
         * <p>
         * 得到 n 天之后的日期
         * </p>
         *
         * @param days:
         * @return:java.lang.String
         * @author:bood
         * @date:2020/10/16
         */
        public static String getAfterDayDate(String days) {
            int daysInt = Integer.parseInt(days);
            // java.util包
            Calendar canlendar = Calendar.getInstance();
            // 日期减 如果不够减会将月变动
            canlendar.add(Calendar.DATE, daysInt);
            Date date = canlendar.getTime();
    
            SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = sdfd.format(date);
    
            return dateStr;
        }
    
        /**
         * 得到n天之后是周几
         *
         * @param days
         * @return
         */
        public static String getAfterDayWeek(String days) {
            int daysInt = Integer.parseInt(days);
            // java.util包
            Calendar canlendar = Calendar.getInstance();
            // 日期相减,如果不够减会将月变动
            canlendar.add(Calendar.DATE, daysInt);
            Date date = canlendar.getTime();
    
            SimpleDateFormat sdf = new SimpleDateFormat("E");
            String dateStr = sdf.format(date);
    
            return dateStr;
        }
    
        /**
         * <p>
         * 获得当前时间之前或之后几个月的日期
         * </p>
         *
         * @param amount: 值可正可负,负<==>before 正<==>after
         * @return:java.lang.String yyyy-MM-dd HH:mm:ss
         * @author:bood
         * @date:2020/10/16
         */
        public static String getAfterMonthDate(Integer amount) {
            //获取当前时间
            Date nowDate = new Date();
            //获取日历类实例
            Calendar cl = Calendar.getInstance();
            //设置当前时间
            cl.setTime(nowDate);
            cl.add(Calendar.MONTH, amount);
            return sdfTime.format(cl.getTime());
        }
    
        /**
         * <p>
         * 获得当前时间之前或之后几年的日期
         * </p>
         *
         * @param amount: 值可正可负,负<==>before 正<==>after
         * @return:java.lang.String yyyy-MM-dd HH:mm:ss
         * @author:bood
         * @date:2020/10/16
         */
        public static String getAfterYearDate(Integer amount) {
            //获取当前时间
            Date nowDate = new Date();
            //获取日历类实例
            Calendar cl = Calendar.getInstance();
            //设置当前时间
            cl.setTime(nowDate);
            cl.add(Calendar.YEAR, amount);
            return sdfTime.format(cl.getTime());
        }
    
    }
    

    在这里插入图片描述
    混〔IT〕的小学生 热爱编程,喜欢挑战新事物!

    展开全文
  • 本文目前提供:LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转 文中都使用的时区都是东8区,也就是北京时间。这是为了防止服务器设置时区错误时导致时间不对,如果您是...
  • 基本概念时刻:所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关,不同时区对同一时刻的解读,即年月日时分秒是不...
  • Oracle TO_DATE 日期格式大全

    万次阅读 多人点赞 2018-02-22 14:52:32
    转自http://apps.hi.baidu.com/share/detail/10070907Oracle TO_DATE 日期格式大全Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
  • pytest datetime 和 date 日期格式断言

    万次阅读 2020-09-21 15:08:57
    date 格式为 年-月-日 3 使用案例 from datetime import datetime, date today: datetime = datetime.today() [datetime.today() 返回值为 当前日期 并且 带时分秒] pint(type(today)) [类型为 datetime....
  • 如果遇到这种情况,其实原因很简单,如果你是想获取当前时间使用,报错的原因是包引的import java.sql.Date; 只需要换成 import java.util.Date; 即可 通过Date类来获取当前时间 : Date date = new Date();...
  • 编程实现:NextDate函数问题说明:输入一个日期,求从输入日期算起的第三天日期。例如,输入为2008年8月8日,则该程序的输出为2008年8月 10日。NextDate函数包含三个整数变量month、day和year,并且满足下列条件:1...
  • mysql年月日时分秒格式化 DATE_FORMAT

    万次阅读 2017-12-27 19:38:25
    求人不如求己 SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')
  • Java:String和Date、Timestamp之间的转换

    万次阅读 2017-01-15 21:36:33
    一、String与Date(java.util.Date)互转 // 1.1、String -> Date @org.junit.Test public void testStringToDate() throws ParseException { String dateStr = "2010-05-04 12:34:23"; //注意f
  • 一、MySQL 日期和时间戳的转换 1.日期转时间戳 select UNIX_TIMESTAMP('2018-12-25 12:25:00'); 结果:1545711900 ...2.时间戳转日期:FROM_UNIXTIME(unix_timestamp) --unix_timestamp为时间戳 ...
  • select a from t where b = '0' and to_date(c,'yyyy-mm-dd HH24:MI:SS') >= to_date('2016-01-05 00:00:00','yyyy-mm-dd HH24:MI:SS') and d = '9' order by e desc 执行出错,我上网查了下,改成了 select a ...
  • 项目经常涉及到时间戳和Date类型的相互转换、时间类型处理等,我有时候一段时间不写就又忘记了,故而写篇笔记备忘下! 本文主要包含的有: 时间戳与Date类型的相互转换 判断是否为同一天 日期格式化 给日期加上...
  • java使用Date类型问题

    2017-02-27 06:21:30
    Date类源码中,java如下定义getMillisOf方法 ``` static final long getMillisOf(Date date) { if (date.cdate == null || date.cdate.isNormalized()) { return date.fastTime; } BaseCalendar.Date d = ...
  • java使用newDate()和System.currentTimeMillis()获取当前时间戳 在开发过程中,通常很多人都习惯使用newDate()来获取当前时间,使用起来也比较方便,同时还可以获取与当前时间有关的各方面信息,例如获取小时,分钟...
  • Linux date 命令

    千次阅读 2015-12-20 21:22:11
    1、概述  打印或者设置系统日期和时间 ... date[OPTION]... [+FORMAT]  date[-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]   3、常用命令参数 [oldboy@zhang~]$ date Sun Dec 20 17:51:57 CST
  • 最近遇到个奇葩的神坑,通过Date date = new Date();获取时间戳以秒为单位本地测试完好(jdk1.8,时区为标准的东八区),但是一上生产取得时间戳就与系统相差16个小时,生产时区为西八区然后日期时间完全改为跟东八区...
  • LocalDateTime和Date 本篇文章你将了解到: 为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】 java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改 为什么需要LocalDate...
  • Java Date 和 Calendar

    万次阅读 2012-03-02 22:30:19
    Java 语言的Date(日期),Calendar(日历),DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑计算一个关键的部分,所有的开发者都应该能够计算未来的日期,定制日期的显示格式,并将...
  • python时间处理之date

    万次阅读 2012-09-12 23:18:59
    # -*- coding: utf-8 -*- from datetime import * import time # 1. date常用的类方法和类属性 ...print 'date.max',date.max #date对象所能表示的最小日期: 0001-01-01 print 'date.min',date.min #返回一个表示当前本
  • $('#datetimepicker').daterangepicker({ "locale": locale, "startDate": today, "singleDatePicker": true, "showDropdowns": true, "maxDate": today }); $("#datetimepicker").change(function ()...
  • Date转String String 转Date

    千次阅读 2017-02-07 20:01:12
    一、Date转String SimpleDateFormat formatter = new SimplDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date; String str = formatter.format(date); 二、String转Date SimpleDateFormat formatter = ...

空空如也

1 2 3 4 5 ... 20
收藏数 360,954
精华内容 144,381
关键字:

date