精华内容
下载资源
问答
  • Date类介绍 在使用时有一个更为强大类DateFormat类提供使用

    Date类介绍

    在这里插入图片描述

    在使用时有一个更为强大的类DateFormat类提供使用

    在这里插入图片描述
    思维导图文件点击这里

    展开全文
  • 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”的表示方式。也就是说年月日之间的分隔符可以用“-”或“/”。 例如表示2018年3月15日 可以采用以下表达式:年月日 #2018-03-15#年日月 #...

    日期数据在SQL表达式中的应用 在SQL表达式运算符条件中,要查询日期和时间类型的数据,需要在数据值两端加上井字符号(#)以表示日期类型。 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”的表示方式。也就是说年月日之间的分隔符可以用“-”或“/”。 例如表示2018年3月15日 可以采用以下表达式:

    年月日 #2018-03-15#

    年日月 #2018-15-03#

    年月日 #2018/03/15#

    日月年 #15/13/2018/#

    月日年 #15/03/2018#

    以表达式在系统无错识别最高的应该是 月/日/年 #03/15/2018# 本例将采用“月/日/年”的写法

    源数据:

    8c5402b0c24457e0e4a0d2a934baf188.png

    查询内容

    筛选出2018年3月15日的数据:

    SQL = "SELECT * FROM [日期$A1:C19] WHERE 日期=#15/03/2018#"

    结果如下图:

    89a05032d10dde82809fb68f54c8659f.png

    筛选出二个日期的数据:

    SQL = "SELECT * FROM [日期$A1:C19] WHERE 日期=#15/03/2018# or 日期=#18/03/2018# "

    结果如下图:

    75346962c606736ba69df558cea48c18.png

    注意事项:

    表达式是分别是“#5/1/2018#和#1/5/2018#” 2018年1月5日 “#1/5/2018#”和“#5/1/2018#”就会发生混淆。系统默认是月在日前。应该采用"月/日/年"或“年/月/日”的写法,避免系统不能识别,导致查询结果错误。

    VBA+ADO+SQL语句,小试牛刀。

    SQL 查询语句-WHERE

    私信 SQL 可以获取SQL代码的Excel文件

    私信 视频 可以获取54集VBA入门视频

    私信 VBA或 vba 可以获取文章中含VBA代码的Excel文件

    展开全文
  • 时间格式前端和后端时经常...类型名格式说明ISO 8601一般:2020-12-05T05:33:19Z 东八区:2004-05-03T17:30:08+08:00国际标准化组织的日期和时间的表示方法,这种格式是最常用的格式。RFC28221992/02/12 12:23:22+0...

    9070b7b6af57ad829e407b9e37a968ba.png

    时间格式

    前端和后端时经常会遇到各种各样的时间格式,这些格式在编写程序的时候都需要去使用不同的处理方式,这里集中写一下。

    先说一下各种不同的时间格式。

    类型名格式说明
    ISO 8601一般:2020-12-05T05:33:19Z 东八区:2004-05-03T17:30:08+08:00国际标准化组织的日期和时间的表示方法,这种格式是最常用的格式。
    RFC28221992/02/12 12:23:22+0800符合rfc2822格式的时间
    格林威治标准时间GMTFri Jul 20 2018 00:00:00 GMT+0800 (中国标准时间)格林威治的子午线作为划分地球东西两半球的经度零度,并作为时间的零点
    世界协调时间UTCMon, 29 Apr 2019 09:52:21 GMT经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密
    Unix时间戳以秒为单位:1607150827 以纳秒为单位:1607150827857990329是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

    一般来说 iso8601时间 和 Unix时间戳 会比较常用。

    GO

    Go获取时间

    获取时间的方式通过time包。

     fmt.Println(time.Now(), time.Now().Unix(), time.Now().UnixNano())
    

    结果分别是 iso8601时间 和两种格式的 Unix时间戳。

    time.Now() 返回 time.Time 格式,这个格式就是iso8601标准。

    2020-12-05 14:51:28.103017059 +0800 CST m=+0.000064327 1607151088 1607151088103017215

    Go比较时间

    Unix() 和 UnixNano() 函数返回的是 int64 的值,因此可以直接比较大小。

    fmt.Prinln(time.Now().Unix() > time.Now().AddDate(0, -1, 0).Unix())
    

    这里的 AddDate函数 的三个参数分别是 年月日 ,往后增加为正,往前为负。

    如果是要更加精确加减,可以使用 Add函数 。

      now := time.Now()
    	m, _ := time.ParseDuration("-1m")
    	m1 := now.Add(m)
    	fmt.Println(m1)
    
    time.ParseDuration 可以使用的时间单位有:"ns", "us" (or "µs"), "ms", "s", "m", "h"

    Go格式化输出

    一种是获取,年月日分秒纳秒的值。

    time.Now().Year()
    time.Now().Month()
    time.Now().Day()
    time.Now().Minute()
    time.Now().Second()
    time.Now().Nanosecond()
    

    还有种就是使用 Format ,注意其中的值是固定的。

    fmt.Println(now.Format("2006-01-02 15:04:05"))
    fmt.Println(now.Format("2006/01/02 15:04:05"))
    fmt.Println(now.Format("2006/01/02"))//年月日
    fmt.Println(now.Format("15:04:05"))//时分秒
    

    Gostring转时间戳

    stringTime := "2017-08-30 16:40:41"
    loc, _ := time.LoadLocation("Local")
    time, _ := time.ParseInLocation("2006-01-02 15:04:05", stringTime, loc)
    fmt.Println(time.Unix())
    

    js

    获取时间

    console.log(new Date())
    console.log(new Date('2020-12-5'))
    

    结果是`GMT时间`格式

    Sat Dec 05 2020 15:21:57 GMT+0800 (中国标准时间)
    

    比较时间

    可以直接比较

    console.log(new Date(2020,12,5)>new Date(2020,12,4))
    

    结果是true

    格式化输出

    Date() 一样有 getDay,getMonth 函数来获取年月日秒等值

    还可以使用 getTime() 来获取时间戳

    转时间戳

    console.log( Date.parse("2019-03-20 02:10:11".replace(/-/gi, "/")))
    

    结果为 1553019011000

    展开全文
  • 一、首先弄清楚一些东西: 15位旧身份证,最后一个数是单数为男,双数为女。 18位新身份证,倒数第二位是单数为男... 其中Ai表示第i位置上身份证号码数字值,Wi表示第i位置上加权因子,其各位对应

    一、首先弄清楚一些东西:

    15位的旧身份证,最后一个数是单数的为男,双数的为女

    18位的新身份证,倒数第二位是单数的为男,双数的为女。

    校验的计算方式:

      1. 对前17位数字本体码加权求和

      公式为:S = Sum(Ai * Wi),  i = 0, ... , 16

      其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

      2. 以11对计算结果取模

      Y = mod(S, 11)

      3. 根据模的值得到对应的校验码

      对应关系为:

        Y值: 0 1 2 3 4 5 6 7 8 9 10

      校验码: 1 0 X 9 8 7 6 5 4 3 2


    二、怎么得到出生地区?

    因为身份证前6位代表的是其出生地方,而且都有一一对应的关系,所以直接拿着去比对就可以。

    三、代码实现

    1. package j8;  
    2.   
    3. import java.io.BufferedReader;  
    4. import java.io.FileInputStream;  
    5. import java.io.IOException;  
    6. import java.io.InputStreamReader;  
    7. import java.util.Properties;  
    8.   
    9. public class IdCardParser {  
    10.   
    11.     public static void main(String[] args) {  
    12.         try {  
    13.             System.out.println("请输入您要查询的身份证号码:");  
    14.             InputStreamReader reader = new InputStreamReader(System.in);  
    15.             String str = new BufferedReader(reader).readLine();  
    16.             IdCard ic = IdCardParser.parse(str);  
    17.             if(ic != null){  
    18.                 System.out.println(ic);  
    19.             }else{  
    20.                 System.out.println("您输入的有误");  
    21.             }  
    22.               
    23.         } catch (IOException e) {  
    24.             e.printStackTrace();  
    25.         }  
    26.     }  
    27.   
    28.     private static final byte[] factor = { 7910584216379,  
    29.             1058421 };  
    30.     private static final char[] ch = { '1''0''X''9''8''7''6''5',  
    31.             '4''3''2' };  
    32.   
    33.     /** 
    34.      * 15位身份证转18位身份证.失败返回null 
    35.      *  
    36.      * @param $15 
    37.      * @return 
    38.      */  
    39.     private static String $15to18(String $15) {  
    40.         if ($15 == null) {  
    41.             return null;  
    42.         }  
    43.         if ($15.length() == 18) {  
    44.             return $15;  
    45.         }  
    46.         if ($15.length() != 15) {  
    47.             return null;  
    48.         }  
    49.         StringBuilder sb = new StringBuilder($15);  
    50.         sb.insert(6"19");// 加入年两位  
    51.         int result = 0;  
    52.         for (int i = 0; i < sb.length(); i++) {  
    53.             result += (Integer.parseInt(sb.charAt(i) + "")) * factor[i];  
    54.         }  
    55.         return sb.append(ch[result % 11]).toString();// 加入效验码  
    56.     }  
    57.   
    58.     /** 
    59.      * 验证第18位效验码 
    60.      *  
    61.      * @param idCardNumber 
    62.      * @return 
    63.      */  
    64.     private static boolean check18(String idCardNumber) {  
    65.         if (idCardNumber == null || idCardNumber.length() != 18) {  
    66.             return false;  
    67.         }  
    68.         int result = 0;  
    69.         for (int i = 0; i < idCardNumber.length() - 1; i++) {  
    70.             result += (Integer.parseInt(idCardNumber.charAt(i) + ""))  
    71.                     * factor[i];  
    72.         }  
    73.         return ch[result % 11] == idCardNumber.charAt(17);  
    74.     }  
    75.   
    76.     /** 
    77.      * 验证出生日期是否合法 
    78.      *  
    79.      * @param idCardNumber 
    80.      * @return 
    81.      */  
    82.     private static boolean checkBirthDay(int year, int month, int day) {  
    83.         if (year < 1900 || year > 2013) {  
    84.             return false;  
    85.         }  
    86.         if (month > 12 || month < 1) {  
    87.             return false;  
    88.         }  
    89.         if (day < 1) {  
    90.             return false;  
    91.         }  
    92.         byte[] dayOfMonth = { 312831303130313130313031 };  
    93.         if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {  
    94.             dayOfMonth[1] = 29;  
    95.         }  
    96.         return day <= dayOfMonth[month - 1];  
    97.     }  
    98.   
    99.     public static IdCard parse(String idCardNumber) {  
    100.         // 检查字符串  
    101.         if (!idCardNumber.matches("\\d{15}|\\d{18}|\\d{17}(?i)X")) {  
    102.             return null;  
    103.         }  
    104.         IdCard ic = new IdCard();  
    105.         // 15->18  
    106.         idCardNumber = $15to18(idCardNumber);  
    107.         // 检查效验码  
    108.         if (idCardNumber == null || !check18(idCardNumber)) {  
    109.             return null;  
    110.         }  
    111.         // 检查出生年月  
    112.         int year = Integer.parseInt(idCardNumber.substring(610));  
    113.         int month = Integer.parseInt(idCardNumber.substring(1012));  
    114.         int day = Integer.parseInt(idCardNumber.substring(1214));  
    115.         if (!checkBirthDay(year, month, day)) {  
    116.             return null;  
    117.         }  
    118.         ic.setNumber(idCardNumber);  
    119.         // 查询身份证归属地  
    120.         ic.setAddress(info.getProperty(idCardNumber.substring(06)));  
    121.         ic.setBirthday(String.format("%d-%d-%d",year, month, day));  
    122.         ic.setSex(1 == (Integer.parseInt(idCardNumber.charAt(16) + "") & 1));  
    123.         return ic;  
    124.     }  
    125.   
    126.     private static final Properties info;  
    127.     static {  
    128.         info = new Properties();  
    129.         try {  
    130.             info.load(new InputStreamReader(new FileInputStream(  
    131.                     "IdCard.properties"), "UTF-8"));  
    132.         } catch (Exception e) {  
    133.             e.printStackTrace();  
    134.         }  
    135.     }  
    136. }  

    身份证实体类:

    1. package j8;  
    2.   
    3.   
    4. public class IdCard {  
    5.       
    6.     private String number;  
    7.     private String address;  
    8.     private String birthday;  
    9.     private boolean sex;//true男.false女  
    10.       
    11.     public IdCard(){  
    12.           
    13.     }  
    14.       
    15.     public IdCard(String number, String address, String birthday, boolean sex) {  
    16.         this.number = number;  
    17.         this.address = address;  
    18.         this.birthday = birthday;  
    19.         this.sex = sex;  
    20.     }  
    21.     public String getNumber() {  
    22.         return number;  
    23.     }  
    24.     public void setNumber(String number) {  
    25.         this.number = number;  
    26.     }  
    27.     public String getAddress() {  
    28.         return address;  
    29.     }  
    30.     public void setAddress(String address) {  
    31.         this.address = address;  
    32.     }  
    33.     public String getBirthday() {  
    34.         return birthday;  
    35.     }  
    36.     public void setBirthday(String birthday) {  
    37.         this.birthday = birthday;  
    38.     }  
    39.     public boolean isSex() {  
    40.         return sex;  
    41.     }  
    42.     public void setSex(boolean sex) {  
    43.         this.sex = sex;  
    44.     }  
    45.       
    46.     public String toString(){  
    47.         return String.format("[号码:%s,地址:%s,出生:%s,性别:%s]",number,address,birthday,sex ? '男' : '女');  
    48.     }  
    49.       
    50. }  

    四、结果

    展开全文
  • 一、首先弄清楚一些东西: 15位旧身份证,最后一个数是单数为男,双数为女。 18位新身份证,倒数第二位... 其中Ai表示第i位置上身份证号码数字值,Wi表示第i位置上加权因子,其各位对应值依次为: 7 9 1
  • 现在越来越多网友开始使用敬业签来记事、设置待办事项提醒了,并且我们在敬业签中设置待办事项提醒,不仅支持通过软件弹窗和声音提醒,还支持通过微信、钉钉、短信、语音来电、日历(安卓)等方式同步提醒待办...
  • 这里的「言い方」是用动词的连用形加上「方(かた)」,表示做什么什么的方式,在这里就表示说法。 田中:そうですね。年月日の言い方は もう 習いましたか。 田中:是呢。年月日的说法已经学了吗?这里的「そうで...
  • 中国居民身份证号码编码规则 第一、二位表示省(自治区、直辖市、特别行政区...第七、十四位表示出生年月日(单数字月日左侧用0补齐)。其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用1
  • 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”的表示方式。也就是说年月日之间的分隔符可以用“-”或“/”。 例如表示2018年3月15日 可以采用以下表达式:年月日 #2018-03-15#年日月 #...
  • 我们可能经常在一些网站上看到刚刚、几分钟前、几小时前,昨天 12:00、前天 13:30 等时间展现方式,不得不说子凡认为这样展现方式用户体验度还是非常高,相比直接显示年月日及时间点反而让人陷入时间计算一...
  • Android中DatePickerDiaolog使用

    千次阅读 2015-08-30 08:58:36
     AndroidDatePickerDiaolog是弹出时间管理窗口,DatePickerDiaolog描述的年月日时间;,与TimePickerDiaolog不同是TimePickerDiaolog描述是一天中具体时分,TimePickerDiaolog有两中表示方式,一种是12...
  •  AndroidDatePickerDiaolog是弹出时间管理窗口,DatePickerDiaolog描述的年月日时间;,与TimePickerDiaolog不同是TimePickerDiaolog描述是一天中具体时分,TimePickerDiaolog有两中表示方式,一种是12...
  • 常见模块

    2019-07-29 08:37:44
    常见模块 time 模块 在python中表示时间三种方式: 时间戳(timetamp):表示的是从1970....元组 ,9个元素,(年月日分秒,一年第几周,一年第几天,夏令时) import time time.sleep(N) #休眠Ns time.tim...
  • 表示时间三种方式 python中有三种表示时间的方式,时间戳,字符串时间,结构化时间。 时间戳(timestamp):1970年1月1日00:00:00开始按秒计算偏移量...时间元组(stuct_time):共有9个元素(年月日时分秒,一年...
  • 1. 时间表达方式有两种,一种是 human time,比如我们所说的年月日等,一种是 machine time,比如我们用 System.currentTimeMillis() 方法获得毫秒数。2. machine time 表示的是从epoch时间(1970年1月1日0时0分0...
  • 1. 时间表达方式有两种,一种是 human time,比如我们所说的年月日等,一种是 machine time,比如我们用 System.currentTimeMillis() 方法获得毫秒数。2. machine time 表示的是从epoch时间(1970年1月1日0时0分0...
  • 时间表达方式有两种,一种是 human time,比如我们所说的年月日等,一种是 machine time,比如我们用 System.currentTimeMillis() 方法获得毫秒数。 \2. machine time 表示的是从epoch时间(1970年1月1日0时0...
  • 设计一个类,它有三个unsigned成员,分别表示年月日.为其编写构造函数,接受一个表示日期string参数,该函数应该能处理不同类型格式,如January,1,1900 1/1/1900,Jan 1 1900,等格式个人理解是月,日,年用某种方式...
  • 为了表示位置,我们希望程序语言具有将精度和纬度“粘合”为一对数据能力 -- 也就是一个复合数据结构 -- 使我们程序能够以一种方式操作数据,将位置看做单个概念单元,它拥有两个部分。 复合数据使用也让我们...
  • 例如,我们需要将分别处于三列的年月日合并为一个日期放在新列中,就可以使用DATE函数进行处理,具体实现方式如下图所示。拓展:假如2020年8月8日是我第一份工作入职日期,我想要计算工...
  • 前几期小编已经把整理好Excel各类函数分享给大家了并且讲了统计函数用法,我这一期我们一起来...例如,我们需要将分别处于三列的年月日合并为一个日期放在新列中,就可以使用DATE函数进行处理,具体实现方式如...
  • 例如,我们需要将分别处于三列的年月日合并为一个日期放在新列中,就可以使用DATE函数进行处理,具体实现方式如下图所示。拓展:假如2020年8月8日是我第一份工作入职日期,我想要计算工...
  • (如果您能对照着源码来阅读本文,效果会... 我们以什么方式来记录类似上下班时间这样只有时分秒没有年月日的时间了?你说可以使用DateTime,但是合适吗?总是觉得用DateTime来表示上下班的时间很别扭,因为我们的上...
  • 为了表示位置,我们希望程序语言具有将精度和纬度“粘合”为一对数据能力——也就是一个复合数据结构,使我们程序能够以一种方式操作数据,将位置看做单个概念单元,它拥有两个部分。复合数据使用也让我们增加...
  • 我们以什么方式来记录类似上下班时间这样只有时分秒没有年月日的时间了?你说可以使用DateTime,但是合适吗?总是觉得用DateTime来表示上下班的时间很别扭,因为我们的上下班时间并需要指定到具体的哪一天啊。 我...

空空如也

空空如也

1 2 3 4 5 6
收藏数 108
精华内容 43
关键字:

年月日日的表示方式