精华内容
下载资源
问答
  • 一,前端jsp页面有一文本框输入时间 HH:mm:ss格式的 另一个文本框要求输入yyyymmdd格式日期  时间:  由于未用到任何时间插件,只能通过js校验输入的时间是否正确,最简单的莫过于使用正则来校验了,  ...

    一,前端jsp页面有一文本框输入时间  HH:mm:ss格式的   另一个文本框要求输入yyyymmdd格式的日期

           时间:

           由于未用到任何时间插件,只能通过js校验输入的时间是否正确,最简单的莫过于使用正则来校验了,

           var regex = /^(([0-2][0-3])|([0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;

           var一个正则表达式,这个表达式检验的就是hh:mm:ss格式的字符串。

           但是如果用户只输入10:20,而最后的  :00  省略掉,难道要提示用户重新输入吗?

           NO,只需要改一下正则表达式即可。

           var regexs = /^(([0-2][0-3])|([0-1][0-9])):[0-5][0-9]$/;

           这个正则和上边的相比只是把最后的  :ss   给去掉了。

           日期:

           直接在js中通过Date对象来进行校验,但是这种方式不推荐使用,因为在java中Date date = new Date(yyyy,mm,dd);这个方法已经不推荐了。

    二,校验

           然后,我们就可以写js来校验了
           

           //提交表单
    
           function submit(){
                  //时间
    
                  var time = form.time.value;
                  
                  var regex = /^(?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;
    
                  if(!regex.test(time)){
    
                          var regexs = /^(?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]$/;
    
                          if(!regexs.test(time)){
    
                              alert("时间格式不正确,请输入正确格式如   10:20 或 10:20:20");
    
                              form.time.focus();//获取焦点
    
                              return;
    
                             }
    
                             form.time.value = time + ":00";
    
                  }
                    
                  //日期
                  var riqi = form.riqi.value;
                  if(riqi != ''){
                        var xxDate = new 
                         Date(riqi.substring(0,4),riqi.substring(4,6)-1,riqi.substring(6,8));
                        if(riqi.substring(0,4) != xxDate.getFullYear() || riqi.substring(4,6) != xxDate.getMonth() || riqi.substring(6,8) != xxDate.getDate()){
    
                            alert("日期格式不正确,");
    
                              form.riqi.focus();//获取焦点
    
                              return;
    }
                    }
    
           }

    三,正则

           在刚开始不太熟悉正则的时候我的js校验代码是介个样子的:

    function isTime(timeStr){
        var parts;
        parts = timeStr.spilt(":");
        if(parts.length < 1){
            return false;
        }
        
        for(i=0;i<parts.length;i++){
            if(isNaN(parts[i])){
                return false;
            }
        }
        h = parts[0];
        m = parts[1];
        if(h<0||h>23){
            return false;
        }
        if(m<0||m>59){
            return false;
        }
        if(parts.length == 3){
            if(parts[2]<0 || parts[2]>59){
                return false;
            }
        }
        return true;
    }

        这段代码和上边的正则没有对比就没有伤害。

        建议正则不太熟悉的去深入了解一下。

    展开全文
  • js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式
  • * 将日期格式化为指定格式 * @param val 当前时间: 例- new Data(); * @param pattern 转化的格式 例- yyyy年-MM月-dd日 hh时:mm分:ss秒 * @returns {null} */ formatDate(val, pattern) { if (!val) { ...

    代码如下:

    /**
     * 将日期格式化为指定格式
     * @param val  当前时间: 例- new Data();
     * @param pattern  转化的格式 例- yyyy年-MM月-dd日 hh时:mm分:ss秒 
     * @returns 返回格式化后的时间
     */
    formatDate(val, pattern) {
        if (!val) {
            return null;
        }
        if (!pattern) {
            pattern = "yyyy-MM-dd hh:mm:ss"
        }
        return new Date(val).format(pattern);
    }

    还有一种办法:

    点击查看另外一种方法参考 ==>  前端时间格式转换,js时间戳转时间(年-月-日 时:分:秒) <==

    展开全文
  • element-ui的时间格式日期格式和时间点格式

    万次阅读 多人点赞 2018-09-21 14:38:12
    日期时间格式 : 显示的可能是正确的时间格式但是最后获取的那个model的值就不是显示的那个样子的。 比如显示年月日时分秒。但是后台只需要年月日。这个时候就利用value-format和format value-format绑定值的...

    日期时间格式  : 显示的可能是正确的时间格式但是最后获取的那个model的值就不是显示的那个样子的。

    比如显示年月日时分秒。但是后台只需要年月日。这个时候就利用value-format和format

     

    value-format绑定值的格式也就是最后后端接口需要我们传的数据格式

    format的属性,是控制显示的格式的。最后选中以后显示在输入框中的格式

     

     value-format="yyyy"    

     value-format="yyyy-MM-dd"      

     value-format="yyyy-MM-dd HH:mm:ss"

     

    直接写就会输出指定的格式类型啦。

    1.type=datetime  日期和时间

    <el-date-picker type="datetime"  v-model="filters.enddate" placeholder="选择结束时间" value-format="yyyy-MM-dd HH:mm:ss"    style="width: 100%;"></el-date-picker>

    2. type="date"   //只有日期

    <el-date-picker v-model="value1" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>   

     

    时间点

    <el-time-picker v-model="value2" :picker-options="{ selectableRange: '18:30:00 - 20:30:00' }" placeholder="任意时间点"> </el-time-picker>

    最后获取的时候明明显示的是正确的时间格式。但是,输出获取的时候这个绑定的vlue2的格式时间点的格式是Thu Sep 27 2018 14:54:01 GMT+0800 (中国标准时间).    连日期都获取了。。

    受上面例子的启发,我们加一个  value-format="HH:mm:ss" 结果没有作用。翻了一下文档发现el-time-picker还有个format的属性,是控制显示的格式的。

    最后加上value-format="HH:mm:ss"   format="HH:mm:ss"这两个属性,就能获取到正确的时间格式啦。

    <el-time-picker v-model="value2" :picker-options="{ selectableRange: '18:30:00 - 20:30:00' }" placeholder="任意时间点"  value-format="HH:mm:ss"   format="HH:mm:ss"> </el-time-picker>

     

    展开全文
  • Excel 日期时间格式讲解

    千次阅读 2017-11-03 15:24:29
    Excel中日期时间格式单元格类型为Numeric,表示Excel日期时间内部以double数值存储 double整数部分表示日期,表示自1900-1-1来的天数 double小数部分表示时间 1.2 日期时间转double方法org.apache.poi.ss.usermodel....

    1.Excel中日期时间

    1.1 存储格式

    • Excel中日期时间格式单元格类型为Numeric,表示Excel日期时间内部以double数值存储
    • Excel中日期时间以浮点值存储,以1900-01-01 00:00:00为起点
    • 浮点值整数部分代表日期,表示自1900-01-01起的天数
    • 浮点值小数部分代表时间
    • 浮点值1.0表示1900-01-01 00:00:00
    • Excel提供了将浮点值d转换为日期时间date的方法
      a. d在区间(-~, 0) 表示无效日期时间
      b. d在区间[0, 1) 转换为 日期时间区间[1899-12-31 00:00:00, 1900-01-01 00:00:00)
      c. d在区间[1, +~) 转换为 日期时间区间[1900-01-01 00:00:00, yyyy-MM-dd HH:mm:ss)

    • Excel提供了将日期时间date转换为浮点值d的方法
      a. date在区间(-~, 1900-01-01 00:00:00) 转换为 d = -1,表示无效日期时间
      b. date = 1900-01-01 00:00:00 转换为 d = 1.0
      c. date在区间(1900-01-01 00:00:00, +~) 转换为 d > 1.0
      这里写图片描述

    1.2 日期时间转double方法

    org.apache.poi.ss.usermodel.DateUtil

    /**
     * 将一个给的的日期转换为一个double类型的数值,代表日期在Excel内部的表现形式
     * double的整数部分表示自1900年1月1日以来的天数,小数表示时分秒
     * @param date : date
     * @param use1904windowing : true-使用1904年的日期窗口,false-使用1900年的日期窗口
     * @return 返回日期的Excel表示(如果错误 -检查小于0.1, 返回-1)
     * */
    public static double getExcelDate(Date date) // 默认使用1900窗口
    public static double getExcelDate(Date date, boolean use1904windowing)

    1.3 日期时间转double实例

    package org.apache.poi.util;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.poi.ss.usermodel.DateUtil;
    
    public class Date2DoubleTest {
    
        public static void main(String[] args) throws Exception {
            System.out.println("小于1900-01-01 00:00:00的日期返回-1");
            System.out.println("日期1800-01-01 00:00:00 转换为double值为: " + formatDouble("1800-01-01 00:00:00"));
            System.out.println("日期1899-01-01 00:00:00 转换为double值为: " + formatDouble("1899-01-01 00:00:00"));
            System.out.println("日期1899-12-31 23:24:25 转换为double值为: " + formatDouble("1899-12-31 23:24:25"));
            System.out.println("日期1900-01-01 00:00:00 转换为double值为: " + formatDouble("1900-01-01 00:00:00"));
            System.out.println("日期1900-01-01 11:11:11 转换为double值为: " + formatDouble("1900-01-01 11:11:11"));
            System.out.println("日期1900-01-01 22:22:22 转换为double值为: " + formatDouble("1900-01-01 22:22:22"));
            System.out.println("日期1900-01-01 23:22:22 转换为double值为: " + formatDouble("1900-01-01 23:22:22"));
            System.out.println("日期1900-01-02 00:00:00 转换为double值为: " + formatDouble("1900-01-02 00:00:00"));
            System.out.println("日期1900-01-03 00:00:00 转换为double值为: " + formatDouble("1900-01-03 00:00:00"));
            System.out.println("日期2017-11-12 13:14:15 转换为double值为: " + formatDouble("2017-11-12 13:14:15"));
        }
    
        public static double formatDouble (String dateStr) throws Exception {
            SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
            Date date = dateFormat2.parse(dateStr); 
            return formatDouble(date);
        }
    
        /**
         * 将java.util.Date转换为double值
         * */
        public static double formatDouble (Date date) {
            double excelDate = DateUtil.getExcelDate(date);
    
            return excelDate;
        }
    }

    执行结果:

    小于1900-01-01 00:00:00的日期返回-1
    日期1800-01-01 00:00:00 转换为double值为: -1.0
    日期1899-01-01 00:00:00 转换为double值为: -1.0
    日期1899-12-31 23:24:25 转换为double值为: -1.0
    日期1900-01-01 00:00:00 转换为double值为: 1.0
    日期1900-01-01 11:11:11 转换为double值为: 1.466099537037037
    日期1900-01-01 22:22:22 转换为double值为: 1.9321990740740742
    日期1900-01-01 23:22:22 转换为double值为: 1.9738657407407407
    日期1900-01-02 00:00:00 转换为double值为: 2.0
    日期1900-01-03 00:00:00 转换为double值为: 3.0
    日期2017-11-12 13:14:15 转换为double值为: 43051.5515625

    这里写图片描述

    1.4 double转日期时间方法

    org.apache.poi.ss.usermodel.DateUtil

    /**
     * 将一个double类型的数值根据Excel内部日期格式转换为一个java.util.Date
     * 
     * 注意:
     * Excel日期和时间存储没有任何时区(TimeZone)信息
     * 如果默认的TimeZone使用了夏令时(Daylight Saving Time),则转换回Excel日期可能不会产生相同的值
     * 
     * @param date Excel内部日期值,一个double类型的数值
     * @param use1904windowing true-使用1904年的日期窗口,false-使用1900年的日期窗口
     * @param tz 对应的时区,如果为null,使用系统默认时区
     * @param roundSeconds 是否round最接近的秒,默认false
     * @return 日期的Java表示形式,如果日期不是有效的Excel日期,则为null
     * */
    public static Date getJavaDate(double date)
    public static Date getJavaDate(double date, boolean use1904windowing)
    public static Date getJavaDate(double date, TimeZone tz) // 使用时区tz去格式化日期
    public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz)
    public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz, boolean roundSeconds)

    1.5 double转日期时间实例

    package org.apache.poi.util;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.poi.ss.usermodel.DateUtil;
    
    public class Double2DateTest {
        public static void main(String[] args) {
            /**
             * double转换为java.util.Date
             * */
            System.out.println("double :    -1.0                转换为日期时间为:  " + formatDate(-1));
            System.out.println("double :    0.00000000000001    转换为日期时间为:  " + formatDate(0.00000000000001));
            System.out.println("double :    0.55555555555555    转换为日期时间为:  " + formatDate(0.55555555555555));
            System.out.println("double :    0.77777777777777    转换为日期时间为:  " + formatDate(0.77777777777777));
            System.out.println("double :    1.0                 转换为日期时间为:  " + formatDate(1.0));
            System.out.println("double :    1.466099537037037   转换为日期时间为:  " + formatDate(1.466099537037037));
            System.out.println("double :    1.9321990740740742  转换为日期时间为:  " + formatDate(1.9321990740740742));
            System.out.println("double :    1.9738657407407407  转换为日期时间为:  " + formatDate(1.9738657407407407));
            System.out.println("double :    2.0                 转换为日期时间为:  " + formatDate(2.0));
            System.out.println("double :    3.0                 转换为日期时间为:  " + formatDate(3.0));
            System.out.println("double :    43051.5515625       转换为日期时间为:  " + formatDate(43051.5515625));
        }
    
        /**
         * 将double值转换为java.util.Date
         * 1. 负数               -> 小于0,表示无效日期
         * 2. 1                -> 1900-1-1 00:00:00
         * 3. 43081.5091898148 -> 2017-12-12 12:13:14
         * @param value 
         * */
        public static String formatDate(double value) {
            if (!DateUtil.isValidExcelDate(value)) {
                // value<0表示是无效日期
                return "小于0,表示无效日期";
            }
            // HH表示24进制,hh是12进制
            return formatDate(value, "yyyy-MM-dd HH:mm:ss");
        }
    
        public static String formatDate(double value, String formatString) {
            SimpleDateFormat sdf = new SimpleDateFormat(formatString);
    //      Date date = DateUtil.getJavaDate(value); 
            // 以1900-1-1 00:00::00为起点
            Date date = DateUtil.getJavaDate(value, false);
    
            // 以1900-1-1 00:00::00为起点
    //      Date date = DateUtil.getJavaDate(value, true);
    
            return sdf.format(date);
        }
    }

    执行结果:
    以1900-1-1 00:00:00为起点

    double :    -1.0                转换为日期时间为:  小于0,表示无效日期
    double :    0.00000000000001    转换为日期时间为:  1899-12-31 00:00:00
    double :    0.55555555555555    转换为日期时间为:  1899-12-31 13:20:00
    double :    0.77777777777777    转换为日期时间为:  1899-12-31 18:40:00
    double :    1.0                 转换为日期时间为:  1900-01-01 00:00:00
    double :    1.466099537037037   转换为日期时间为:  1900-01-01 11:11:11
    double :    1.9321990740740742  转换为日期时间为:  1900-01-01 22:22:22
    double :    1.9738657407407407  转换为日期时间为:  1900-01-01 23:22:22
    double :    2.0                 转换为日期时间为:  1900-01-02 00:00:00
    double :    3.0                 转换为日期时间为:  1900-01-03 00:00:00
    double :    43051.5515625       转换为日期时间为:  2017-11-12 13:14:15

    这里写图片描述

    2.Excel日期单元格样式

    • Excel支持日期单元格
    • 日期值对应的是Excel内部日期double值的证书部分,表示自1900-1-1以来的天数

    2.1 Excel日期样式

    使用Excel或WPS设置单元格样式,会看到已经定义了日期样式

    2.1.1 对话框-已定义日期样式

    这里写图片描述

    2.1.2 对话框-自定义日期样式

    这里写图片描述

    2.2 Excel中已定义日期样式

    [$-804]表示国家或地区(语言)编号,一般可以不填。
    如804 汉语 (中国)
    809 英语(英国)
    409 英语(美国)
    如果电脑上没有装相应的语言(可以设),把804改掉都不会影响显示结果。
    
    [$-F800]相对于是 yyyy-m-d"
    [$-F400]相对于是 h:mm:ss
    
    [dbnum1]是将阿拉伯数字转换为汉字,如:123转换为一二三
    [dbbun2]是转换成大写汉字,如:123转换为壹贰叁
    [dbnum3]是转换为全角数字,如:123转换为 123
    d代表日期之中的日,m日期中的月,y日期中的年,h日期中的小时,m日期中的分,s是日期中的秒
    
    [$-F800]dddd, mmmm dd, yyyy
    [DBNum1][$-804]yyyy"年"m"月"d"日";@
    [DBNum1][$-804]yyyy"年"m"月";@
    [DBNum1][$-804]m"月"d"日";@
    yyyy"年"m"月"d"日";@
    yyyy"年"m"月";@
    m"月"d"日";@
    [$-804]aaaa;@
    [$-804]aaa;@
    yyyy/m/d;@
    [$-409]yyyy/m/d h:mm AM/PM;@
    yyyy/m/d h:mm;@
    yy/m/d;@
    m/d;@
    m/d/yy;@
    mm/dd/yy;@
    [$-409]d-mmm;@
    [$-409]d-mmm-yy;@
    [$-409]dd-mmm-yy;@
    [$-409]mmm-yy;@
    [$-409]mmmm-yy;@
    [$-409]mmmm-yy;@
    [$-409]mmmmm;@
    [$-409]mmmmm-yy;@

    2.3 Excel 2007中日期样式存储格式

    2.3.1 当前Sheet日期单元格

    这里写图片描述

    2.3.2 当前Sheet存储XML

    这里写图片描述

    2.3.3 当前Sheet单元格样式存储XML

    这里写图片描述

    2.4 验证日期样式字符串

    org.apache.poi.ss.usermodel.DateUtil提供方法验证

    package org.apache.poi.util;
    
    import org.apache.poi.ss.usermodel.DateUtil;
    
    /**
     * 验证Excel中已定义的日期格式
     * org.apache.poi.ss.usermodel.DateUtil
     * 
     * [$-804]表示国家或地区(语言)编号,一般可以不填。
     * 如804 汉语 (中国)
     *  809 英语(英国)
     *  409 英语(美国)
     * 如果电脑上没有装相应的语言(可以设),把804改掉都不会影响显示结果。
     * 
     * [$-F800]相对于是 yyyy-m-d"
     * [$-F400]相对于是 h:mm:ss
     * 
     * [dbnum1]是将阿拉伯数字转换为汉字,如:123转换为一二三
     * [dbbun2]是转换成大写汉字,如:123转换为壹贰叁
     * [dbnum3]是转换为全角数字,如:123转换为 123
     * d代表日期之中的日,m日期中的月,y日期中的年,h日期中的小时,m日期中的分,s是日期中的秒
     * */
    public class DateFormatTest {
        public static void main(String[] args) {
            System.out.println("字符串 - [$-F800]dddd\\,\\ mmmm\\ dd\\,\\ yyyy  是否是日期格式: " + DateUtil.isADateFormat(176, "[$-F800]dddd\\,\\ mmmm\\ dd\\,\\ yyyy"));
            System.out.println("字符串 - [DBNum1][$-804]yyyy\"年\"m\"月\"d\"日 	 是否是日期格式: " + DateUtil.isADateFormat(177, "[DBNum1][$-804]yyyy\"年\"m\"月\"d\"日"));
            System.out.println("字符串 - [DBNum1][$-804]yyyy\"年\"m\"月\";@  	是否是日期格式: " + DateUtil.isADateFormat(178, "[DBNum1][$-804]yyyy\"年\"m\"月\";@"));
            System.out.println("字符串 - [DBNum1][$-804]m\"月\"d\"日\";@  	是否是日期格式: " + DateUtil.isADateFormat(179, "[DBNum1][$-804]m\"月\"d\"日\";@"));
            System.out.println("字符串 - yyyy\"年\"m\"月\"d\"日\";@       是否是日期格式: " + DateUtil.isADateFormat(180, "yyyy\"年\"m\"月\"d\"日\";@"));
            System.out.println("字符串 - yyyy\"年\"m\"月\";@             是否是日期格式: " + DateUtil.isADateFormat(181, "yyyy\"年\"m\"月\";@"));
            System.out.println("字符串 - m\"月\"d\"日\";@            是否是日期格式: " + DateUtil.isADateFormat(182, "m\"月\"d\"日\";@"));
            System.out.println("字符串 - [$-804]aaaa;@  			是否是日期格式: " + DateUtil.isADateFormat(183, "[$-804]aaaa;@"));
            System.out.println("字符串 - [$-804]aaa;@  			是否是日期格式: " + DateUtil.isADateFormat(184, "[$-804]aaa;@"));
            System.out.println("字符串 - yyyy/m/d;@            是否是日期格式: " + DateUtil.isADateFormat(185, "yyyy/m/d;@"));
            System.out.println("字符串 - [$-409]yyyy/m/d\\ h:mm\\ AM/PM;@    是否是日期格式: " + DateUtil.isADateFormat(186, "[$-409]yyyy/m/d\\ h:mm\\ AM/PM;@"));
            System.out.println("字符串 - yyyy/m/d\\ h:mm;@         是否是日期格式: " + DateUtil.isADateFormat(187, "yyyy/m/d\\ h:mm;@"));
            System.out.println("字符串 - yy/m/d;@              是否是日期格式: " + DateUtil.isADateFormat(188, "yy/m/d;@"));
            System.out.println("字符串 - m/d;@                 是否是日期格式: " + DateUtil.isADateFormat(189, "m/d;@"));
            System.out.println("字符串 - m/d/yy;@              是否是日期格式: " + DateUtil.isADateFormat(190, "m/d/yy;@"));
            System.out.println("字符串 - mm/dd/yy;@            是否是日期格式: " + DateUtil.isADateFormat(191, "mm/dd/yy;@"));
            System.out.println("字符串 - [$-409]d\\-mmm;@  			是否是日期格式: " + DateUtil.isADateFormat(192, "[$-409]d\\-mmm;@"));
            System.out.println("字符串 - [$-409]d\\-mmm\\-yy;@  		是否是日期格式: " + DateUtil.isADateFormat(193, "[$-409]d\\-mmm\\-yy;@"));
            System.out.println("字符串 - [$-409]dd\\-mmm\\-yy;@  		是否是日期格式: " + DateUtil.isADateFormat(194, "[$-409]dd\\-mmm\\-yy;@"));
            System.out.println("字符串 - [$-409]mmm\\-yy;@  		是否是日期格式: " + DateUtil.isADateFormat(195, "[$-409]mmm\\-yy;@"));
            System.out.println("字符串 - [$-409]mmmm\\-yy;@  		是否是日期格式: " + DateUtil.isADateFormat(196, "[$-409]mmmm\\-yy;@"));
            System.out.println("字符串 - [$-409]mmmmm;@  			是否是日期格式: " + DateUtil.isADateFormat(197, "[$-409]mmmmm;@"));
            System.out.println("字符串 - [$-409]mmmmm\\-yy;@  		是否是日期格式: " + DateUtil.isADateFormat(198, "[$-409]mmmmm\\-yy;@"));
        }
    }

    执行结果:

    字符串 - [$-F800]dddd\,\ mmmm\ dd\,\ yyyy  是否是日期格式: true
    字符串 - [DBNum1][$-804]yyyy"年"m"月"d"日     是否是日期格式: true
    字符串 - [DBNum1][$-804]yyyy"年"m"月";@     是否是日期格式: true
    字符串 - [DBNum1][$-804]m"月"d"日";@    是否是日期格式: true
    字符串 - yyyy"年"m"月"d"日";@         是否是日期格式: true
    字符串 - yyyy"年"m"月";@             是否是日期格式: true
    字符串 - m"月"d"日";@            是否是日期格式: true
    字符串 - [$-804]aaaa;@            是否是日期格式: false
    字符串 - [$-804]aaa;@             是否是日期格式: false
    字符串 - yyyy/m/d;@            是否是日期格式: true
    字符串 - [$-409]yyyy/m/d\ h:mm\ AM/PM;@    是否是日期格式: true
    字符串 - yyyy/m/d\ h:mm;@          是否是日期格式: true
    字符串 - yy/m/d;@              是否是日期格式: true
    字符串 - m/d;@                 是否是日期格式: true
    字符串 - m/d/yy;@              是否是日期格式: true
    字符串 - mm/dd/yy;@            是否是日期格式: true
    字符串 - [$-409]d\-mmm;@              是否是日期格式: true
    字符串 - [$-409]d\-mmm\-yy;@          是否是日期格式: true
    字符串 - [$-409]dd\-mmm\-yy;@         是否是日期格式: true
    字符串 - [$-409]mmm\-yy;@         是否是日期格式: true
    字符串 - [$-409]mmmm\-yy;@        是否是日期格式: true
    字符串 - [$-409]mmmmm;@           是否是日期格式: true
    字符串 - [$-409]mmmmm\-yy;@       是否是日期格式: true

    这里写图片描述

    3. Excel 时间单元格样式

    • Excel单元格也支持时间单元格
    • 时间值对应的是Excel内部时间double值的小数部分

    3.1 Excel时间样式

    使用Excel或WPS设置单元格样式,会看到已经定义了时间样式,我们主要讲解的就是这些时间样式:

    3.1.1 对话框-已定义时间样式

    这里写图片描述

    3.1.2 对话框-自定义时间样式

    这里写图片描述

    3.2 Excel中已定义时间样式

    两种设置时间样式一共有19种已经定义的时间样式,内置的时间样式索引小于50,自定义样式索引从164开始:

     - 索引         时间样式字符串
     - 18,       "h:mm AM/PM"  
     - 19,       "h:mm:ss AM/PM"  
     - 20,       "h:mm"  
     - 21,       "h:mm:ss"  
     - 22,       "m/d/yy h:mm"  
     - 45,       "mm:ss"  
     - 46,       "[h]:mm:ss"  
     - 47,       "mm:ss.0" 
     - 
     - 176    [DBNum1][$-804]上午/下午h"时"mm"分";@
     - 177    [DBNum1][$-804]h"时"mm"分";@
     - 178    [$-409]h:mm:ss\ AM/PM;@
     - 179    [$-409]h:mm\ AM/PM;@
     - 180    [$-F400]h:mm:ss\ AM/PM
     - 181    h:mm;@
     - 182    h:mm:ss;@
     - 183    h"时"mm"分";@
     - 184    h"时"mm"分"ss"秒";@
     - 185    上午/下午h"时"mm"分";@
     - 186    上午/下午h"时"mm"分"ss"秒";@ 

    3.3 Excel 2007中时间样式存储格式

    3.3.1 当前Sheet时间单元格

    这里写图片描述

    3.3.2 当前Sheet存储XML

    这里写图片描述

    3.3.3 当前Sheet单元格样式存储XML

    这里写图片描述

    3.4 验证时间样式字符串

    提供方法实现验证一个单元格是否为一个时间单元格:
    - 时间单元格原始值为double
    - 时间单元格样式为时间字符串
    这里提供方法解析单元格样式字符串,验证其是否为时间样式字符串,工具类:

    package org.apache.poi.util;
    
    import java.util.regex.Pattern;
    
    /**
     * 主要用于处理导入excel中日期时间格式, 
     * 参考org.apache.poi.ss.usermodel.DateUtil
     * */
    public class DateTimeUtil {
    
        protected DateTimeUtil() {
            // no instances of this class
        }
    
        // 描述无效的日期
    //  private static final int BAD_DATE = -1;
    
        public static final int SECONDS_PER_MINUTE = 60;
        public static final int MINUTES_PER_HOUR = 60;
        public static final int HOURS_PER_DAY = 24;
        // 一天等于86400秒
        public static final int SECONDS_PER_DAY = (HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE);
    
        // 一天等于86400 * 1000毫秒
        public static final long DAY_MILLISECONDS = SECONDS_PER_DAY * 1000L;
    
    //  private static final Pattern TIME_SEPARATOR_PATTERN = Pattern.compile(":");
    
        /**
         * 符号. : 匹配除换行符 \n 之外的任何单字符
         * 符号* : 匹配前面的子表达式零次或多次
         * 符号+ : 匹配前面的子表达式一次或多次
         * 符号? : 匹配前面的子表达式零次或一次
         * 
         * *、 +限定符都是贪婪的,因为它们会尽可能多的匹配文字
         * 通过在 *、 + 或 ? 限定符之后放置 ?(*?、 +?、 ??),该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配
         * */
    
        // ^[\$\-.*?] : 匹配以[$-开头,中间为除换行符 \n 之外的任何单字符,结尾为]的字符串,非贪心匹配
        private static final Pattern date_ptrn1 = Pattern.compile("^\\[\\$\\-.*?\\]");
    
        /**
         * 红色 : \u7ea2\u8272
         * 黑色 :\u9ed1\u8272
         * 黄色 :  \u9ec4\u8272
         * 绿色 : \u7eff\u8272
         * 白色 : \u9ed1\u8272
         * 蓝色 : \u84dd\u8272
         * 青色 : \u9752\u8272
         * 洋红 : \u6d0b\u7ea2
         * */
        // ^[[a-zA-Z]+] : 匹配以[开头, ]结尾, 中间至少一个字母的字符串,如颜色
        private static final Pattern date_ptrn2 = Pattern.compile("^\\[[a-zA-Z\u7ea2\u9ed1\u9ec4\u7eff\u84dd\u9752\u6d0b\u7ea2\u8272]+\\]");
    
        // [yYmMdDhHsS] : 匹配中括号里任一字母, 匹配一个
        private static final Pattern date_ptrn3a = Pattern.compile("[mhHsS]");
    
        /**
         * 为中文/日文日期格式添加Unicode编码:如2017 \u5e74 2 \u6708 7 \u65e5
         * Unicode编码  : 中文
         *    \u5e74 : 年
         *    \u6708 : 月
         *    \u65e5 : 日
         *    \u4e0a : 上
         *    \u4e0b : 下
         *    \u5348 : 午
         *    
         * ^[\[\]mhHsS\-T/时分秒(上午/下午),. :"\\]+0*[ampAMP/]*$
         * */
        private static final Pattern date_ptrn3b = Pattern.compile("^[\\[\\]yYmMdDhHsS\\-T/\u65f6\u5206\u79d2(\u4e0a\u5348/\u4e0b\u5348),. :\"\\\\]+0*[ampAMP/]*$");
    
        // ^\[([hH]+|[mM]+|[sS]+)] : 匹配以[开头, 以]结尾, 中间为时、分或秒的时间字符
        private static final Pattern date_ptrn4 = Pattern.compile("^\\[([hH]+|[mM]+|[sS]+)\\]");
    
        // 匹配以[DBNum1]、[DBNum2]或[DBNum3]开头的中文日期
        private static final Pattern date_ptrn5 = Pattern.compile("^\\[DBNum(1|2|3)\\]");
    
        /**
         * 性能优化的变量:
         * 如果一个相同的日期格式字符串被多次传递,避免重复检查DataUtil.isADateFormat(int, String)
         * https://issues.apache.org/bugzilla/show_bug.cgi?id=55611
         * */
        private static ThreadLocal<Integer> lastFormatIndex = new ThreadLocal<Integer>() {
            protected Integer initialValue() {
                return -1;
            }
        };
        private static ThreadLocal<String> lastFormatString = new ThreadLocal<String>();
        private static ThreadLocal<Boolean> lastCachedResult = new ThreadLocal<Boolean>();
    
        /**
         * 当前格式是否缓存过
         * @param formatString 格式化字符串
         * @param formatIndex 格式化索引
         * */
        private static boolean isCached(String formatString, int formatIndex) {
            String cachedFormatString = lastFormatString.get();
            return cachedFormatString != null && 
                         formatIndex == lastFormatIndex.get() && 
                         formatString.equals(cachedFormatString);
        }
    
        /**
         * 缓存当前格式
         * @param formatString 格式化字符串
         * @param formatIndex 格式化索引
         * @param cached 是否已经缓存过
         * */
        private static void cache(String formatString, int formatIndex, boolean cached) {
            lastFormatIndex.set(formatIndex);
            lastFormatString.set(formatString);
            lastCachedResult.set(Boolean.valueOf(cached));
        }
    
        /**
         * 检查给定格式ID及其格式String是否表示时间格式。
         * 1. 调用此方法之前org.apache.poi.ss.usermodel.DateUtil.isADateFormat(formatIndex, formatString)
         *      首先确保是一个日期格式
         * 2. 再检查是否为时间格式
         *
         * @param formatIndex 格式索引
         * @param formatString 格式字符串
         */
        public static boolean isADateTimeFormat(int formatIndex, String formatString) {
            if(isInternalDateTimeFormat(formatIndex)) {
                cache(formatString, formatIndex, true);
                return true;
            }
    
            if(formatString == null || formatString.length() == 0) {
                return false;
            }
    
            // 检查是否缓存过,提高性能
            if (isCached(formatString, formatIndex)) {
                return lastCachedResult.get();
            }
    
            String fs = formatString;
            final int length = fs.length();
            StringBuilder sb = new StringBuilder(length);
            for (int i = 0; i < length; i++) {
                char c = fs.charAt(i);
                if (i < length - 1) {
                    char nc = fs.charAt(i + 1);
                    if (c == '\\') {// 处理转义字符
                        switch (nc) {
                            case '-': // \-表示
                            case ',':
                            case '.':
                            case ' ':
                            case '\\':
                                // skip current '\' and continue to the next char
                                continue;
                        }
                    } else if (c == ';' && nc == '@') {// 跳过;@
                        i++;
                        continue;
                    }
                }
                sb.append(c);
            }
            fs = sb.toString();
    
            // short-circuit if it indicates elapsed time: [h], [m] or [s]
            if(date_ptrn4.matcher(fs).matches()){
                cache(formatString, formatIndex, true);
                return true;
            }
    
            // 处理以[DBNum1]、 [DBNum2]或[DBNum3]开头的时间格式:[DBNum1][$-804]h"时"mm"分";@
            fs = date_ptrn5.matcher(fs).replaceAll("");
    
            // 处理匹配[$-...]的时间格式:[$-F400]h:mm:ss\ AM/PM
            fs = date_ptrn1.matcher(fs).replaceAll("");
    
            // 匹配以[开头, ]结尾, 中间至少一个字母的字符串,如带颜色的时间格式:[Yellow]h:mm:ss AM/PM
            fs = date_ptrn2.matcher(fs).replaceAll("");
    
            // 日期格式为dd / mm / yy; [red] dd / mm / yy,只处理第一个
            final int separatorIndex = fs.indexOf(';');
            if(0 < separatorIndex && separatorIndex < fs.length()-1) {
                fs = fs.substring(0, separatorIndex);
            }
    
            // 处理时间格式
            if (! date_ptrn3a.matcher(fs).find()) {
                return false;
            }
    
            /**
             * 到了这里,检查它只是由以下组成:  m h s - \ /,。 :[] T
             * 可选地跟随AM / PM
             * */
            boolean result = date_ptrn3b.matcher(fs).matches();
            cache(formatString, formatIndex, result);
            return result;
        }
    
        /**
         * 给定的日期格式索引是否为Excel内置日期时间格式
         * @param format 日期格式索引
         */
        public static boolean isInternalDateTimeFormat(int format) {
            switch(format) {
                // Excel内部时间格式
                //          0x12,       "h:mm AM/PM"  
                //          0x13,       "h:mm:ss AM/PM"  
                //          0x14,       "h:mm"  
                //          0x15,       "h:mm:ss"  
                //          0x16,       "m/d/yy h:mm"  
                //          0x2d,       "mm:ss"  
                //          0x2e,       "[h]:mm:ss"  
                //          0x2f,       "mm:ss.0"  
                case 0x12:
                case 0x13:
                case 0x14:
                case 0x15:
                case 0x16:
                case 0x2d:
                case 0x2e:
                case 0x2f:
                    return true;
            }
            return false;
        }
    
        /**
         * 检查给定的double数值是否是有效的Excel日期
         * value>=0,表示是有效日期
         */
        public static boolean isValidExcelDate(double value) {
            return (value > -Double.MIN_VALUE);
        }
    
        /************************ 以下是org.apache.poi.ss.usermodel.DateUtil常用方法   ******************************/
    
        /**
         * 将一个给的的日期转换为一个double类型的数值,代表日期在Excel内部的表现形式
         * double的整数部分表示自1900年1月1日以来的天数,小数表示时分秒
         * @param date : date
         * @param use1904windowing : true-使用1904年的日期窗口,false-使用1900年的日期窗口
         * @return 返回日期的Excel表示(如果错误 -检查小于0.1, 返回-1)
         * */
    //  public static double getExcelDate(Date date) // 默认使用1900窗口
    //  public static double getExcelDate(Date date, boolean use1904windowing)
    
        /**
         * 将一个double类型的数值根据Excel内部日期格式转换为一个java.util.Date
         * 
         * 注意:
         * Excel日期和时间存储没有任何时区(TimeZone)信息
         * 如果默认的TimeZone使用了夏令时(Daylight Saving Time),则转换回Excel日期可能不会产生相同的值
         * 
         * @param date Excel内部日期值,一个double类型的数值
         * @param use1904windowing true-使用1904年的日期窗口,false-使用1900年的日期窗口
         * @param tz 对应的时区,如果为null,使用系统默认时区
         * @param roundSeconds 是否round最接近的秒,默认false
         * @return 日期的Java表示形式,如果日期不是有效的Excel日期,则为null
         * */
    //  public static Date getJavaDate(double date)
    //  public static Date getJavaDate(double date, boolean use1904windowing)
    //  public static Date getJavaDate(double date, TimeZone tz) // 使用时区tz去格式化日期
    //  public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz)
    //  public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz, boolean roundSeconds)
    
        /**
         * 将一个格式为HH:MM或HH:MM:SS的时间字符串转换为Excel日期格式的double数值,一个小数
         * @param timeStr 如12:12、 12:12:12,timeStr长度小于4或大于8都会抛出异常
         * @return 返回一个0~1之间的数
         */
    //  public static double convertTime(String timeStr)
    //  private static double convertTimeInternal(String timeStr)
    }

    测试类:

    package org.apache.poi.util;
    
    /**
     * 
     * 索引         时间样式字符串
     * 18,       "h:mm AM/PM"  
     * 19,       "h:mm:ss AM/PM"  
     * 20,       "h:mm"  
     * 21,       "h:mm:ss"  
     * 22,       "m/d/yy h:mm"  
     * 45,       "mm:ss"  
     * 46,       "[h]:mm:ss"  
     * 47,       "mm:ss.0" 
     * 
     * 176    [DBNum1][$-804]上午/下午h"时"mm"分";@
     * 177    [DBNum1][$-804]h"时"mm"分";@
     * 178    [$-409]h:mm:ss\ AM/PM;@
     * 179    [$-409]h:mm\ AM/PM;@
     * 180    [$-F400]h:mm:ss\ AM/PM
     * 181    h:mm;@
     * 182    h:mm:ss;@
     * 183    h"时"mm"分";@
     * 184    h"时"mm"分"ss"秒";@
     * 185    上午/下午h"时"mm"分";@
     * 186    上午/下午h"时"mm"分"ss"秒";@ 
     * */
    public class TimeFormatTest {
        public static void main(String[] args) {
            System.out.println("Excel已定义时间格式字符串: ");
            System.out.println("字符串 - h:mm AM/PM                             是否是时间格式: " + DateTimeUtil.isADateTimeFormat(18, "h:mm AM/PM"));
            System.out.println("字符串 - h:mm:ss AM/PM                          是否是时间格式: " + DateTimeUtil.isADateTimeFormat(19, "h:mm:ss AM/PM"));
            System.out.println("字符串 - h:mm                                   是否是时间格式: " + DateTimeUtil.isADateTimeFormat(20, "h:mm"));
            System.out.println("字符串 - h:mm:ss                                是否是时间格式: " + DateTimeUtil.isADateTimeFormat(21, "h:mm:ss"));
            System.out.println("字符串 - m/d/yy h:mm                            是否是时间格式: " + DateTimeUtil.isADateTimeFormat(22, "m/d/yy h:mm"));
            System.out.println("字符串 - mm:ss                                  是否是时间格式: " + DateTimeUtil.isADateTimeFormat(45, "mm:ss"));
            System.out.println("字符串 - [h]:mm:ss                              是否是时间格式: " + DateTimeUtil.isADateTimeFormat(46, "[h]:mm:ss"));
            System.out.println("字符串 - mm:ss.0                                                                                           是否是时间格式: " + DateTimeUtil.isADateTimeFormat(47, "mm:ss.0"));
            System.out.println("字符串 - [DBNum1][$-804]上午/下午h\"时\"mm\"分\";@  是否是时间格式: " + DateTimeUtil.isADateTimeFormat(176, "[DBNum1][$-804]上午/下午h\"时\"mm\"分\";@"));
            System.out.println("字符串 - [DBNum1][$-804]h\"时\"mm\"分\";@          是否是时间格式: " + DateTimeUtil.isADateTimeFormat(177, "[DBNum1][$-804]h\"时\"mm\"分\";@"));
            System.out.println("字符串 - [$-409]h:mm:ss\\ AM/PM;@               是否是时间格式: " + DateTimeUtil.isADateTimeFormat(178, "[$-409]h:mm:ss\\ AM/PM;@"));
            System.out.println("字符串 - [$-409]h:mm\\ AM/PM;@                  是否是时间格式: " + DateTimeUtil.isADateTimeFormat(179, "[$-409]h:mm\\ AM/PM;@"));
            System.out.println("字符串 - [$-F400]h:mm:ss\\ AM/PM                是否是时间格式: " + DateTimeUtil.isADateTimeFormat(180, "[$-F400]h:mm:ss\\ AM/PM"));
            System.out.println("字符串 - h:mm;@                                 是否是时间格式: " + DateTimeUtil.isADateTimeFormat(181, "h:mm;@"));
            System.out.println("字符串 - h:mm:ss;@                              是否是时间格式: " + DateTimeUtil.isADateTimeFormat(182, "h:mm:ss;@"));
            System.out.println("字符串 - h\"时\"mm\"分\";@                        是否是时间格式: " + DateTimeUtil.isADateTimeFormat(183, "h\"时\"mm\"分\";@"));
            System.out.println("字符串 - h\"时\"mm\"分\"ss\"秒\";@                是否是时间格式: " + DateTimeUtil.isADateTimeFormat(184, "h\"时\"mm\"分\"ss\"秒\";@"));
            System.out.println("字符串 - 上午/下午h\"时\"mm\"分\";@                 是否是时间格式: " + DateTimeUtil.isADateTimeFormat(185, "上午/下午h\"时\"mm\"分\";@"));
            System.out.println("字符串 - 上午/下午h\"时\"mm\"分\"ss\"秒\";@          是否是时间格式: " + DateTimeUtil.isADateTimeFormat(186, "上午/下午h\"时\"mm\"分\"ss\"秒\";@"));
    
            System.out.println();
            System.out.println("Excel自定义时间格式字符串:");
            System.out.println("字符串 - [红色]上午/下午h\"时\"mm\"分\"ss\"秒\";@          是否是时间格式: " + DateTimeUtil.isADateTimeFormat(187, "[红色]上午/下午h\"时\"mm\"分\"ss\"秒\";@"));
            System.out.println("字符串 - [绿色]yyyy/mm/dd hh:mm          是否是时间格式: " + DateTimeUtil.isADateTimeFormat(188, "[绿色]yyyy/mm/dd hh:mm"));
        }
    }

    执行结果:

    Excel已定义时间格式字符串: 
    字符串 - h:mm AM/PM                            是否是时间格式: true
    字符串 - h:mm:ss AM/PM                         是否是时间格式: true
    字符串 - h:mm                                  是否是时间格式: true
    字符串 - h:mm:ss                               是否是时间格式: true
    字符串 - m/d/yy h:mm                           是否是时间格式: true
    字符串 - mm:ss                                 是否是时间格式: true
    字符串 - [h]:mm:ss                             是否是时间格式: true
    字符串 - mm:ss.0                                                                                           是否是时间格式: true
    字符串 - [DBNum1][$-804]上午/下午h"时"mm"分";@  是否是时间格式: true
    字符串 - [DBNum1][$-804]h"时"mm"分";@          是否是时间格式: true
    字符串 - [$-409]h:mm:ss\ AM/PM;@              是否是时间格式: true
    字符串 - [$-409]h:mm\ AM/PM;@                 是否是时间格式: true
    字符串 - [$-F400]h:mm:ss\ AM/PM               是否是时间格式: true
    字符串 - h:mm;@                               是否是时间格式: true
    字符串 - h:mm:ss;@                            是否是时间格式: true
    字符串 - h"时"mm"分";@                         是否是时间格式: true
    字符串 - h"时"mm"分"ss"秒";@                   是否是时间格式: true
    字符串 - 上午/下午h"时"mm"分";@                 是否是时间格式: true
    字符串 - 上午/下午h"时"mm"分"ss"秒";@           是否是时间格式: true
    
    Excel自定义时间格式字符串:
    字符串 - [红色]上午/下午h"时"mm"分"ss"秒";@      是否是时间格式: true
    字符串 - [绿色]yyyy/mm/dd hh:mm                是否是时间格式: true

    这里写图片描述

    4.注意

    4.1 只有时间

    • 在Excel一个Sheet单元格中输入:11:12:13
    • 设置单元格样式为时间:h:mm:ss;@
    • 11:12:13单元格为Numeric类型,以double值存储,不是一个字符串单元格
      因为只有时间,而没有日期,所以double只有小数,整部部分为0,存储的值是一个小于1的数。
      当前Sheet的时间单元格:
      这里写图片描述
      存储:
      这里写图片描述
      这里写图片描述

    4.2 日期小于1900-1-1

    • 一个单元格为:1899/12/31,一个为:1900/1/1
    • 设置单元格样式为日期:yyyy”年”m”月”d”日”;@
    • 1899/12/31会以字符串存储,日期样式不起效
    • 1900/1/1会以double值存储,日期样式起效,显示为1900年1月1日
      这里写图片描述
    • sheet1.xml存储Sheet单元格信息
      这里写图片描述
    • SharedStrings.xml存储Excel中所有Sheet字符型单元格的文本值
      这里写图片描述
    • styles.xml存储Excel中所有Sheet的所有单元格样式信息
      这里写图片描述
    展开全文
  • 我在之前有一篇文章,写的是“javascript时间戳函数”,大家可以看一下,记录了js时间戳的转换,今天主要写的函数式日期格式化函数,我们有时候调用的new Date()不是格式化的时间,可能显示不是很正常,今天这里分享...
  • sql日期格式转换函数 In this article, we will explore various SQL Convert Date formats to use in writing SQL queries. 在本文中,我们将探索各种SQL转换日期格式,以用于编写SQL查询。 We need to ...
  • JS 判断input输入框日期时间格式是否符合YY-MM-DD HH:MM:SS和是否符合实际日期规范方法以及SQL时间日期格式转化存储 先获取input文本框内输入值 <p>日 &nbsp &nbsp &nbsp 期:&nbsp;<...
  • 最近需要将数据导出至excel,而用python datetime.datetime.now() 获取到的日期转为字符串再写入excel后,excel仍无法识别为日期格式 >>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 研究后...
  • SpringBoot设置后台向前台传递Date日期格式 在springboot应用中,@RestController注解的json默认序列化中,日期格式默认为:2020-12-03T15:12:26.000+00:00类型的显示。 在实际显示中,我们需要对其转换成我们需要...
  • SQL数据库中对日期时间格式的简单操作.txt
  • DATE_FORMAT(`addtime`,'%Y-%m-%d') 时间格式转成字符串 time_format('1924-01-02', '%Y-%m-%d') 字符串转成时间格式 CO
  • 字符串时间日期格式

    万次阅读 2018-06-04 17:08:58
    日期格式化:转换符s说明s示例%tey一月中的某一天(1-31)6%tbz指定语言环境的月份简称Feb(英文),二月(中文)%tBz指定语言环境的月份全称February(英文),二月(中文)%tAz指定环境下星期几的全称Monday(英文)...
  • Java——时间日期格式

    万次阅读 2019-06-20 17:15:23
    时间格式化类 SimpleDateFormat类 抽象类,工厂方法。 用于java.util.Date和java.sql.Date 线程不安全 字符串格式化为时间对象 .parse()方法 // 从字符串提取出日期 String strDate = "2008-11-17";...
  • GMT时间日期格式

    千次阅读 2020-01-14 10:33:24
    时间日期格式 GMT:格林尼标准时间 北京时间=GMT时间+8小时 格林尼治平均时(GMT, Greenwich Mean Time) 格林威治是英国伦敦泰晤士河南岸的一个地方,由于从19世纪开始,因为世界各国来往频繁,而欧洲大陆、美洲大陆...
  • //时间格式化 //var time1 = new Date().Format("yyyy-MM-dd"); //var time2 = new Date().Format("yyyy-MM-dd hh:mm:ss"); Date.prototype.Format = function (fmt) { //author: meizz var ...
  • 正则表达式校验日期时间格式

    千次阅读 2020-12-18 09:30:04
    DateTime值类型表示值范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期时间。 2、平年和闰年 地球绕太阳公转一周叫做一回归年,一回归年长...
  • C#时间/日期格式大全

    万次阅读 2018-06-08 09:52:14
    C#时间/日期格式大全(转)C#时间/日期格式大全,C#时间/日期函数大全有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢?...
  • vue js日期时间格式

    千次阅读 2019-10-10 23:51:12
    使用vue开发中,后台传过来的数据含有时间日期的通常前端都要做进一步做处理或者格式化,常用的是使用filter来过滤数据,换一种思路,前端拿到的时间日期数据一般是一串数字的时间戳,或者是一个字符串的时间日期,...
  • PostgreSQL 日期时间格式

    千次阅读 2019-12-21 17:52:46
    PostgreSQL 日期时间格式date和timestamp类型select示例insert示例参考 date和timestamp类型 select示例 共三种方法 select date '2018-03-05'; select '2018-03-05'::date; select to_date('2018-03-05', 'YYYY-...
  • 本程序可以方便快速更改系统日期时间格式。避免手动进到电脑系统-控制面板-区域语言选项中修改
  • openpyxl 日期格式处理

    千次阅读 2020-12-22 18:01:58
    日期格式处理 设置单元格日期格式 将单元格的value设置为datetime 设置单元格的number_format就可以更改excel中的显示格式 from openpyxl import Workbook import datetime filename = 'date.xlsx' wb = Workbook...
  • Java常用的日期时间格式化转换符

    千次阅读 2018-09-18 18:02:33
    如果想输出满意的日期时间格式,一般需要编写大量的代码经过各种算法才能实现。format()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。 常用的日期格式化转换符 转 换 符 说 明 示 例 %...
  • * @param 日期验证,验证的格式有: * "yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM/dd...
  • Python日期时间格式

    千次阅读 2018-11-07 19:52:42
    from datetime import datetime update_stan = '18-11-07 10:10:10' type(update_stan ) ...# 字符串转为日期时间格式 update_str = datetime.strptime(update_stan, '%y-%m-%d %H:%M:%S') update_...
  • java Date 日期格式

    千次阅读 2019-08-28 20:53:27
    今天来整理一下java中的日期类 ...在日期中最特殊的数字其实也是0,0这个日期代表的就是java中时间的原点——》1970,1,1 8,0,0 1969全球发布了第一个unix系统,综合考虑就认为1970 凡是在这个...
  • sql日期格式转换函数_SQL转换日期

    万次阅读 2020-07-27 05:36:01
    sql日期格式转换函数 介绍 (Introduction) A common task for newbies is to learn how to do a SQL convert date and work to convert them date to other data types or covert other data types to Date. ...
  • JAVA 日期格式

    千次阅读 2019-07-07 20:39:47
    最近项目中需要用到SimpleDateFormat 格式日期,但是因为对日期格式的不熟练多花了十分钟左右的时间日期格式化上面,所以趁着周末外面下着大雨闲着无聊整理一下日期格式问题。 日期格式化学习 预定义格式日期...
  • 时间日期格式转换(Date类)

    千次阅读 2019-12-02 20:06:24
    对于日期的常用格式,在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”yyyy/mm/dd”,此次编程竞赛的启动日期“2010/11/20”就是符合这种格式的一个日期, 而北美所用的日期格式则为“月月/日日/...
  • SimpleDateFormat 日期时间格式转化

    千次阅读 2019-08-27 18:55:23
    SimpleDateFormat 一定要弄清楚 parse 与 format 不然总是遇到异常 就是使用不对的问题 parse()返回的是一个Date类型...假如获取了系统时间 Date date = new Date(); 这个date 定义的Date 类型的数据 可以使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,338,537
精华内容 935,414
关键字:

日期格式