精华内容
下载资源
问答
  • LocalDateTime获取时间类(当前时间)

    万次阅读 2020-06-08 11:44:41
    LocalDateTime获取时间类 LocalDateTime获取时间类是java8提供的一个新的获取时间类,该类可以获取任意格式的时间,使用非常方便。 获取当前当前时间 public void timeNow() { //输出当前时间 LocalDateTime ...

    LocalDateTime获取时间类

    LocalDateTime获取时间类是java8提供的一个新的获取时间类,该类可以获取任意格式的时间,使用非常方便。

    1. 获取当前当前时间
    public void timeNow() {
    		//输出当前时间
            LocalDateTime dateTime = LocalDateTime.now();
            System.out.println(dateTime);
        }
    
    

    2.获取指定格式时间

    public   void formatDateTime() {
            //格式化格式
            String format = "YYYY-MM-dd hh:mm:ss";
            // DateTimeFormatter.ofPattern方法根据指定的格式输出时间
            String formatDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
    
            System.out.println(formatDateTime);
        }
    
    

    3.获取某个日期的时间

    获取某个日期的时间可以通过选择不同的plus方法一直选择下去。

    public void getDateTime() {
            //获取当前日期后一天的后一个小时
            LocalDateTime dateTime = LocalDateTime.now().plusDays(1).plusHours(1);
            System.out.println(dateTime);
    
            //格式化格式
            String format = "YYYY-MM-dd hh:mm:ss";
            //获取当前日期后三天以后3小时的时间并格式化输出
            String formatDate = LocalDateTime.now().plusDays(3).plusHours(3).format(DateTimeFormatter.ofPattern(format));
            System.out.println(formatDate);
        }
        ```
        
    
    

    在java8以前,或许:

    当你在做有关时间日期的操作时,你会想到用Date;
    当你在做日期、月份、天数相加减时,你会想到用Calendar;
    当你需要对时间日期进行格式化时,你会想到使用SimpleDateFormat或DateFormat下的其他子类;

    但是,你必须知道,以上有关的时间日期操作对象,都是可变的、线程不安全的,同时,如果作为一个经常写过类似代码的人来说,尽管有相关对象提供某些操作,但并不能很快、很简单的就能得到最终想要的结果,如:要计算两个时间点之间相差的年、月、日、周、时、分、秒等,这些计算尽管原有API也能够实现,但原有API除了线程不安全之外,另外一个不足之处就是代码繁琐,性能低!

    **为何我们总提多线程下,线程不安全?**对于初学者来说,可能觉得能够简单实现出功能就已经足够,但是真正的开发项目是不可能仅仅考虑功能的实现的,还要考虑项目的安全性、稳定性、高性能、高可用性等等!因此,作为java开发者,多线程的知识是必不可少的。而也正因为多线程,才会出现一大堆问题(简称线程安全性问题),作为开发者,就应该写出不仅能实现功能的代码,还要是线程安全的代码。那么,学习并熟悉掌握新的线程安全的API就显得非常重要了!

    没错,java8出的新的时间日期API都是线程安全的,并且性能更好,代码更简洁!
    新时间日期API常用、重要对象介绍

    • ZoneId: 时区ID,用来确定Instant和LocalDateTime互相转换的规则
    • Instant: 用来表示时间线上的一个点(瞬时)
    • LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的
    • LocalTime: 表示没有时区的时间, LocalTime是不可变并且线程安全的
    • LocalDateTime: 表示没有时区的日期时间, LocalDateTime是不可变并且线程安全的
    • Clock: 用于访问当前时刻、日期、时间,用到时区
    • Duration: 用秒和纳秒表示时间的数量(长短),用于计算两个日期的“时间”间隔
    • Period: 用于计算两个“日期”间隔

    其中,LocalDate、LocalTime、LocalDateTime是新API里的基础对象,绝大多数操作都是围绕这几个对象来进行的,有必要搞清楚:
    LocalDate : 只含年月日的日期对象
    LocalTime :只含时分秒的时间对象
    LocalDateTime : 同时含有年月日时分秒的日期对象

    本文将以实例讲解日常开发中常用到的时间日期操作,如:

    获取当前日期、时间
    指定时间日期创建对应的对象
    计算两个时间点的间隔
    判断两个时间的前后
    时间日期的格式化
    获取时间戳
    时间、日期相加减
    获取给定时间点的年份、月份、周、星期等

    新时间日期API详解与示例
    获取当前时间
    LocalDate localDate = LocalDate.now();
    LocalTime localTime = LocalTime.now();
    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println(localDate);
    System.out.println(localTime);
    System.out.println(localDateTime);
    
    

    运行结果:
    在这里插入图片描述

    根据指定日期/时间创建对象
    LocalDate localDate = LocalDate.of(2018, 1, 13);
    LocalTime localTime = LocalTime.of(9, 43, 20);
    LocalDateTime localDateTime = LocalDateTime.of(2018, 1, 13, 9, 43, 20);
    System.out.println(localDate);
    System.out.println(localTime);
    System.out.println(localDateTime);
    

    结果:
    在这里插入图片描述
    日期时间的加减
    对于LocalDate,只有精度大于或等于日的加减,如年、月、日;
    对于LocalTime,只有精度小于或等于时的加减,如时、分、秒、纳秒;
    对于LocalDateTime,则可以进行任意精度的时间相加减;

    LocalDateTime localDateTime = LocalDateTime.now();
    //以下方法的参数都是long型,返回值都是LocalDateTime
    LocalDateTime plusYearsResult = localDateTime.plusYears(2L);
    LocalDateTime plusMonthsResult = localDateTime.plusMonths(3L);
    LocalDateTime plusDaysResult = localDateTime.plusDays(7L);
    LocalDateTime plusHoursResult = localDateTime.plusHours(2L);
    LocalDateTime plusMinutesResult = localDateTime.plusMinutes(10L);
    LocalDateTime plusSecondsResult = localDateTime.plusSeconds(10L);
            
    System.out.println("当前时间是 : " + localDateTime + "\n"
            + "当前时间加2年后为 : " + plusYearsResult + "\n"
            + "当前时间加3个月后为 : " + plusMonthsResult + "\n"
            + "当前时间加7日后为 : " + plusDaysResult + "\n"
            + "当前时间加2小时后为 : " + plusHoursResult + "\n"
            + "当前时间加10分钟后为 : " + plusMinutesResult + "\n"
            + "当前时间加10秒后为 : " + plusSecondsResult + "\n"
            );
        
    //也可以以另一种方式来相加减日期,即plus(long amountToAdd, TemporalUnit unit)
    //                  参数1 : 相加的数量, 参数2 : 相加的单位
    LocalDateTime nextMonth = localDateTime.plus(1, ChronoUnit.MONTHS);
    LocalDateTime nextYear = localDateTime.plus(1, ChronoUnit.YEARS);
    LocalDateTime nextWeek = localDateTime.plus(1, ChronoUnit.WEEKS);
            
    System.out.println("now : " + localDateTime + "\n"
            + "nextYear : " + nextYear + "\n"
            + "nextMonth : " + nextMonth + "\n"
            + "nextWeek :" + nextWeek + "\n"
            );
            
    //日期的减法用法一样,在此不再举例
    
    

    运行结果:在这里插入图片描述
    将年、月、日等修改为指定的值,并返回新的日期(时间)对象
    析: 其效果与时间日期相加减差不多,如今天是2018-01-13,要想变为2018-01-20有两种方式
    a. localDate.plusDays(20L) -> 相加指定的天数
    b. localDate.withDayOfYear(20) -> 直接指定到哪一天

    LocalDate localDate = LocalDate.now();
    //当前时间基础上,指定本年当中的第几天,取值范围为1-365,366
    LocalDate withDayOfYearResult = localDate.withDayOfYear(200);
    //当前时间基础上,指定本月当中的第几天,取值范围为1-29,30,31
    LocalDate withDayOfMonthResult = localDate.withDayOfMonth(5);
    //当前时间基础上,直接指定年份
    LocalDate withYearResult = localDate.withYear(2017);
    //当前时间基础上,直接指定月份
    LocalDate withMonthResult = localDate.withMonth(5);
    System.out.println("当前时间是 : " + localDate + "\n"
            + "指定本年当中的第200天 : " + withDayOfYearResult + "\n"
            + "指定本月当中的第5天 : " + withDayOfMonthResult + "\n"
            + "直接指定年份为2017 : " + withYearResult + "\n"
            + "直接指定月份为5月 : " + withMonthResult + "\n"
            );
    
    

    结果:
    在这里插入图片描述

    获取日期的年月日周时分秒
    LocalDateTime localDateTime = LocalDateTime.now();
    int dayOfYear = localDateTime.getDayOfYear();
    int dayOfMonth = localDateTime.getDayOfMonth();
    DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
    System.out.println("今天是" + localDateTime + "\n"
            + "本年当中第" + dayOfYear + "天" + "\n"
            + "本月当中第" + dayOfMonth + "天" + "\n"
            + "本周中星期" + dayOfWeek.getValue() + "-即" + dayOfWeek + "\n");
            
    //获取当天时间的年月日时分秒
    int year = localDateTime.getYear();
    Month month = localDateTime.getMonth();
    int day = localDateTime.getDayOfMonth();
    int hour = localDateTime.getHour();
    int minute = localDateTime.getMinute();
    int second = localDateTime.getSecond();
    System.out.println("今天是" + localDateTime + "\n"
            + "年 : " + year + "\n"
            + "月 : " + month.getValue() + "-即 "+ month + "\n"
            + "日 : " + day + "\n"
            + "时 : " + hour + "\n"
            + "分 : " + minute + "\n"
            + "秒 : " + second + "\n"
            );
    

    结果:
    在这里插入图片描述

    时间日期前后的比较与判断
    //判断两个时间点的前后
    LocalDate localDate1 = LocalDate.of(2017, 8, 8);
    LocalDate localDate2 = LocalDate.of(2018, 8, 8);
    boolean date1IsBeforeDate2 = localDate1.isBefore(localDate2);
    System.out.println("date1IsBeforeDate2 : " + date1IsBeforeDate2);
    // date1IsBeforeDate2 == true
    
    判断是否为闰年
    LocalDate now = LocalDate.now();
    System.out.println("now : " + now + ", is leap year ? " + );
    
    java8时钟 : clock()
    //返回当前时间,根据系统时间和UTC
    Clock clock = Clock.systemUTC();
    // 运行结果: SystemClock[Z]
    System.out.println(clock);
    

    时间戳
    事实上Instant就是java8以前的Date,
    可以使用以下两个类中的方法在这两个类型之间进行转换,
    比如Date.from(Instant)就是用来把Instant转换成java.util.date的,
    而new Date().toInstant()就是将Date转换成Instant的

    Instant instant = Instant.now();
    //2019-06-08T16:50:19.174Z
    System.out.println(instant);
    Date date = Date.from(instant);
    Instant instant2 = date.toInstant();
    //Sun Jun 09 00:50:19 CST 2019
    System.out.println(date);
    //2019-06-08T16:50:19.174Z
    System.out.println(instant2);
    

    计算时间、日期间隔
    Duration:用于计算两个“时间”间隔
    Period:用于计算两个“日期”间隔

    //计算两个日期的日期间隔-年月日
    LocalDate date1 = LocalDate.of(2018, 2, 13);
    LocalDate date2 = LocalDate.of(2017, 3, 12);
    //内部是用date2-date1,所以得到的结果是负数
    Period period = Period.between(date1, date2);
    System.out.println("相差年数 : " + period.getYears());
    System.out.println("相差月数 : " + period.getMonths());
    System.out.println("相差日数 : " + period.getDays());
    //还可以这样获取相差的年月日
    System.out.println("-------------------------------");
    long years = period.get(ChronoUnit.YEARS);
    long months = period.get(ChronoUnit.MONTHS);
    long days = period.get(ChronoUnit.DAYS);
    System.out.println("相差的年月日分别为 : " + years + "," + months + "," + days);
    //注意,当获取两个日期的间隔时,并不是单纯的年月日对应的数字相加减,而是会先算出具体差多少天,在折算成相差几年几月几日的
            
    //计算两个时间的间隔
    System.out.println("-------------------------------");
    LocalDateTime date3 = LocalDateTime.now();
    LocalDateTime date4 = LocalDateTime.of(2018, 1, 13, 22, 30, 10);
    Duration duration = Duration.between(date3, date4);
    System.out.println(date3 + " 与 " + date4 + " 间隔  " + "\n"
            + " 天 :" + duration.toDays() + "\n"
            + " 时 :" + duration.toHours() + "\n"
            + " 分 :" + duration.toMinutes() + "\n"
            + " 毫秒 :" + duration.toMillis() + "\n"
            + " 纳秒 :" + duration.toNanos() + "\n"
            );
    //注意,并没有获得秒差的,但既然可以获得毫秒,秒就可以自行获取了
    

    结果:
    在这里插入图片描述

    当计算程序的运行时间时,应当使用时间戳Instant
    
    Instant ins1 = Instant.now();
    for (int i = 0; i < 10000000; i++) {
                //循环一百万次
    }
    Instant ins2 = Instant.now();
    Duration duration = Duration.between(ins1, ins2);
    System.out.println("程序运行耗时为 : " + duration.toMillis() + "毫秒");
    
    时间日期的格式化(格式化后返回的类型是String)
    1. 使用jdk自身配置好的日期格式
    //使用jdk自身配置好的日期格式
    DateTimeFormatter formatter1 = DateTimeFormatter.ISO_DATE_TIME;
    LocalDateTime date1 = LocalDateTime.now();
    //反过来调用也可以 : date1.format(formatter1);
    String date1Str = formatter1.format(date1);
    System.out.println(date1Str);
    

    结果:
    在这里插入图片描述

    2. 使用自定义格式
    LocalDateTime date1 = LocalDateTime.now();
    DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
    String date2Str = formatter2.format(date1);
    System.out.println(date2Str);
    

    结果:
    在这里插入图片描述

    注:自定义转化的格式一定要与日期类型对应

    LocalDate只能设置仅含年月日的格式
    LocalTime只能设置仅含时分秒的格式
    LocalDateTime可以设置含年月日时分秒的格式
    代码如下:

    DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    System.out.println(formatter3.format(LocalDate.now()));
            
    System.out.println("-------------------------------");
            
    DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("HH:mm:ss");
    System.out.println(formatter4.format(LocalTime.now()));
    

    结果:
    在这里插入图片描述

    将时间字符串形式转化为日期对象

    将时间字符串形式转化为日期对象
    String datetime =  "2018-01-13 21:27:30";  
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime ldt = LocalDateTime.parse(datetime, dtf);  
    System.out.println(ldt);  
    

    结果:
    在这里插入图片描述

    注:格式的写法必须与字符串的形式一样
    2018-01-13 21:27:30 对应 yyyy-MM-dd HH:mm:ss
    20180113213328 对应 yyyyMMddHHmmss
    否则会报运行时异常!

    但要记住:得到的最终结果都是类似2018-01-13T21:27:30的格式

    因为在输出LocalDateTime对象时,会调用其重写的toString方法。

    @Override
        public String toString() {
            return date.toString() + 'T' + time.toString();
        }
    

    将时间日期对象转为格式化后的时间日期对象

    将时间日期对象转为格式化后的时间日期对象
    //新的格式化API中,格式化后的结果都默认是String,有时我们也需要返回经过格式化的同类型对象
    LocalDateTime ldt1 = LocalDateTime.now();
    DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String temp = dtf1.format(ldt1);
    LocalDateTime formatedDateTime = LocalDateTime.parse(temp, dtf1);
    System.out.println(formatedDateTime);
    

    结果:
    在这里插入图片描述
    long毫秒值转换为日期

    long毫秒值转换为日期
    System.out.println("---------long毫秒值转换为日期---------");
    DateTimeFormatter df= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String longToDateTime = df.format(LocalDateTime.ofInstant(
       Instant.ofEpochMilli(System.currentTimeMillis()),ZoneId.of("Asia/Shanghai")));
    System.out.println(longToDateTime);
    

    结果:
    在这里插入图片描述
    借鉴:https://www.cnblogs.com/mark5/p/11865833.html

    展开全文
  • JAVA获取时间,获取指定时区时间

    千次阅读 2018-05-31 16:23:14
    一个简单的时间工具类,别忘了倒包哦编写java程序时间基本是每个程序都需要的,有的时候获取时间就成了问题,试试创建一个时间类,同意调用吧public class DataTimeUtil {  public static String getCurrentTime...

    别忘了倒包

    指定时区还能解决一些时间不统一等小问题

    public class DataTimeUtil {

            public static String getCurrentTime(String format){   //获取自定义格式的时间

    if (format==null || "".equals(format))
    format="yyyy-MM-dd HH:mm:ss";
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));    //指定时区
    return  sdf.format(Calendar.getInstance().getTime());
    }

    public static String getCurrentTime(){                          //获取指定格式的时间
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));    //指定时区
    return  sdf.format(Calendar.getInstance().getTime());

    }

    }

    展开全文
  • clock_gettime获取时间

    万次阅读 2017-11-04 14:20:41
    linux下clock_getting可以用来获取时间,其中需要用到struct timespec结构体,struct timespec结构体如下: struct timespec { time_t tv_sec; long tv_nsec; } 写个小程序测试一下:

                ❤️强烈推荐人工智能学习网站❤️

                linux下clock_getting可以用来获取时间并精度到纳秒,其中需要用到struct timespec结构体,struct timespec结构体如下:

    struct timespec
    {
          time_t tv_sec;
          long tv_nsec;
    }


    写个小程序测试一下:

    #include<stdio.h>
    #include<time.h>
    #include<sys/time.h>
    
    void test_time()
    {
         struct timespec time;
         clock_gettime(CLOCK_REALTIME,&time);
         printf("tv_sec=%ld,tv_nsec=%ld\n",time.tv_sec,time.tv_nsec);
    }
    
    int main()
    {
          test_time();
    
          return 0;
    }

    编译运行:

     

    [mapan@localhost thread]$ gcc -lrt time1.c 
    [mapan@localhost thread]$ ./a.out 
    tv_sec=1509774203,tv_nsec=413767266
    [mapan@localhost thread]$ 
    


    linux下还有其他的时间结构体,但是struct timespec可以精确到纳秒。

     

     

     

     

     

     

     

    展开全文
  • 最近几天做了一项window下的打包工作,因为每天都要制作安装包,所以要设置一下时间戳,为此研究了一下Windows下bat脚本获取时间和Linux下shell脚本获取时间。 1、Windows下bat脚本获取时间 (1)windows下DOS窗口...

    最近几天做了一项window下的打包工作,因为每天都要制作安装包,所以要设置一下时间戳,为此研究了一下Windows下bat脚本获取时间和Linux下shell脚本获取时间。

    1、Windows下bat脚本获取时间

    (1)windows下DOS窗口date的结果 2016/09/03 周六,我们需要将其进行格式化显示,如:YYYY-MM-DD 就要进行如下操作:

    日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

    年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位

    (2)windows下DOS窗口time的结果 12:05:49.02 我们需要将其进行格式化显示,如:HH:MM:SS就要进行如下操作:

    时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

    时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位

    详见脚本DateTime.bat

    :: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat)
    :: @echo off 表示不回显执行的命令
    @echo off 
    @echo =========Windows的原本日期时间格式=======================
    :: 设置变量,使用变量时需要用一对%包起来
    set ORIGINAL_DATE=%date% 
    echo %ORIGINAL_DATE%
    
    @echo =========日期按照YYYY-MM-DD格式显示======================
    :: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
    :: windows下DOS窗口date的结果 2016/09/03 周六
    :: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位
    set CURRENT_DATE=%date:~0,4%-%date:~5,2%-%date:~8,2% 
    echo %CURRENT_DATE%
    
    @echo =========时间按照HH:MM:SS格式显示========================
    :: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
    :: windows下DOS窗口time的结果 12:05:49.02 
    :: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
    set CURRENT_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2%  
    echo %CURRENT_TIME%
    
    @echo =========日期时间按照YYYY-MM-DD HH:MM:SS格式显示=========
    set CURRENT_DATE_TIME=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%:%time:~3,2%:%time:~6,2%  
    echo %CURRENT_DATE_TIME%
    
    @echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============
    set CURRENT_DATE_TIME_STAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
    echo %CURRENT_DATE_TIME_STAMP%
    @echo =========================================================


    运行结果:



    不过最近测试发现一个问题,当时钟小于等于9时,前面有个空格,比较难看,如下图


    针对上面的问题做了如下修改:

    :: 编码格式 GB2312
    :: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat)
    :: @echo off 表示不回显执行的命令
    @echo off 
    @echo =========Windows的原本日期时间格式=======================
    :: 设置变量,使用变量时需要用一对%包起来
    set ORIGINAL_DATE=%date% 
    echo %ORIGINAL_DATE%
    
    @echo =========日期按照YYYY-MM-DD格式显示======================
    :: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
    :: windows下DOS窗口date的结果 2016/09/03 周六
    :: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位
    
    set YEAR=%date:~0,4%
    set MONTH=%date:~5,2%
    set DAY=%date:~8,2%
    set CURRENT_DATE=%YEAR%-%MONTH%-%DAY%
    echo %CURRENT_DATE%
    
    @echo =========时间按照HH:MM:SS格式显示========================
    :: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
    :: windows下DOS窗口time的结果 12:05:49.02 
    :: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
    
    set HOUR=%time:~0,2%
    set MINUTE=%time:~3,2%
    set SECOND=%time:~6,2%
    
    :: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取
    set TMP_HOUR=%time:~1,1%
    set NINE=9
    set ZERO=0
    :: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于
    if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%
    
    set CURRENT_TIME=%HOUR%:%MINUTE%:%SECOND%
    echo %CURRENT_TIME%
    
    @echo =========日期时间按照YYYY-MM-DD HH:MM:SS格式显示=========
    set CURRENT_DATE_TIME=%YEAR%-%MONTH%-%DAY% %HOUR%:%MINUTE%:%SECOND%
    echo %CURRENT_DATE_TIME%
    
    @echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============
    set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%
    echo %CURRENT_DATE_TIME_STAMP%
    @echo =========================================================

    DateTime.bat

    运行效果如下:



    提供一个按照时间戳创建文件夹的脚本,这个在文件备份的时候常常用到

    CreateDirectoryByTimeStamp.bat

    :: 编码格式 GB2312
    :: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat)
    :: @echo off 表示不回显执行的命令
    @echo off 
    
    :: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
    :: windows下DOS窗口date的结果 2016/09/03 周六
    :: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位
    set YEAR=%date:~0,4%
    set MONTH=%date:~5,2%
    set DAY=%date:~8,2%
    
    :: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
    :: windows下DOS窗口time的结果 12:05:49.02 
    :: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
    set HOUR=%time:~0,2%
    set MINUTE=%time:~3,2%
    set SECOND=%time:~6,2%
    :: 毫秒
    set MILLISECIOND=%time:~9,2%
    
    :: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取
    set TMP_HOUR=%time:~1,1%
    set NINE=9
    set ZERO=0
    :: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于
    if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%
    
    set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%%MILLISECIOND%
    mkdir  %CURRENT_DATE_TIME_STAMP%


    2、Linux下shell脚本获取时间

    Linux下shell脚本获取时间就比较简单了,详见脚本DateTime.sh:

    echo "====================================================="
    echo "show linux original format date and time:"
    echo DateTime: $(date)
    echo "====================================================="
    
    echo "show date time like format: YYYY-MM-DD HH:MM:SS"
    NOW_DATE_TIME=$(date "+%Y-%m-%d %H:%M:%S")
    echo $NOW_DATE_TIME
    echo "====================================================="
    
    echo "show date time like format: YYYYMMDD-HHMMSS"
    NOW_TIME=$(date "+%Y%m%d-%H%M%S")
    echo $NOW_TIME
    echo "====================================================="
    
    echo "show last year:"
    LAST_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 years")
    echo $LAST_YEAR
    echo "====================================================="
    
    echo "show next year:"
    NEXT_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 years")
    echo $NEXT_YEAR
    echo "====================================================="
    
    echo "show last month:"
    LAST_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 months")
    echo $LAST_MONTH
    echo "====================================================="
    
    echo "show next month:"
    NEXT_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="1 months")
    echo $NEXT_MONTH
    echo "====================================================="
    
    echo "show last day:"
    LAST_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 days")
    echo $LAST_DAY
    echo "====================================================="
    
    echo "show next day:"
    NEXT_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="1 days")
    echo $NEXT_DAY
    echo "====================================================="
    
    echo "show last hour:"
    LAST_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 hours")
    echo $LAST_HOUR
    echo "====================================================="
    
    echo "show next hour:"
    NEXT_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 hours")
    echo $NEXT_HOUR
    echo "====================================================="
    
    echo "show last minute:"
    LAST_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 minutes")
    echo $LAST_MINUTE
    echo "====================================================="
    
    echo "show next minute:"
    NEXT_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="1 minutes")
    echo $NEXT_MINUTE
    echo "====================================================="
    
    echo "show last second:"
    LAST_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 seconds")
    echo $LAST_SECOND
    echo "====================================================="
    
    echo "show next second:"
    NEXT_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="1 seconds")
    echo $NEXT_SECOND
    echo "====================================================="

    DateTime.sh

    运行结果:


    展开全文
  • 小程序获取时间方法

    千次阅读 2019-07-29 17:00:19
    js中获取时间new date()的用法 var myDate = new Date();//获取系统当前时间 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //...
  • cmd获取时间

    万次阅读 2012-11-05 15:16:03
    cmd 获取当前时间 cmd 获取当前时间 @echo off ::获取日期 将格式设置为:20110820 ...::获取时间中的小时 将格式设置为:24小时制 set timevar=%time:~0,2% if /i %timevar% LSS 10 ( set timevar=0%time
  • 系统为:Ubuntu14.04,安装jdk1.8后,JDK1.8获取时间比系统时间少13小时,不止如何配置
  • C/C++获取时间方法:gettimeofday()

    万次阅读 2015-04-18 10:18:07
    获取时间
  • PB 中获取时间的方法

    千次阅读 2020-05-20 08:27:07
    PB 中获取时间的方法 1.获取当前日期和时间 sle_2.text= string(today(),‘yyyy-mm-dd’)+ " " + string(now(),‘hh:mm:ss’) 2.获取系统前一天0点0时0分 ld_datetime=datetime( RelativeDate(ToDay(),-1),Time(‘00...
  • mysql只获取时间的年月日

    万次阅读 2019-06-17 17:39:37
    mysql只获取时间的年月日 解决方法: 使用date_format函数来截取:http://www.yayihouse.com/yayishuwu/chapter/1978 假如d.ts在数据库中的值是2019-06-17 12:12:12,那么结果:2019-06-17 ...
  • mysql获取时间

    千次阅读 2018-07-08 14:42:15
    使用current_timestamp()二、获取当前时间,格式为YYYYMMDDHHmmss可在格式为“YYYY-MM-DD HH:mm:ss”的时间结果上+0三、获取当前的年月日四、获取当前的时分秒五、获取当前时间的秒数格林尼治时间为:1970-01-01 00:...
  • C#获取时间的几个方法_艾孜尔江撰

    万次阅读 2021-02-13 15:13:53
    //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateString().ToString(); // 2008年9月4日 ...
  • linux在shell中获取时间date

    千次阅读 2017-11-07 20:31:11
    linux在shell中获取时间date
  • C++使用chrono获取时间

    千次阅读 2019-03-30 21:14:02
    C++使用chrono获取时间差 #include <iostream> #include <chrono> int main(){ auto start = std::chrono::high_resolution_clock::now(); int res = 1; for(int i=0; i<100000; i++){ res++; ...
  • MFC获取时间的几种方法

    千次阅读 2016-04-20 09:50:18
    MFC获取时间方法
  • 获取当前时间的年月日时分秒 ...方法一:获取时间格式为:“2013-09-22 2:32:36”的时间 1 2 SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date = sDat
  • 目前市面上的智能时钟智能摆件设备都需要获取时间及天气信息的功能,之前也有很多客户和朋友询问这方面的问题,所以就写了这篇文章介绍获取时间及天气的方法,希望对大家能有些帮助。 获取时间 计算机获取网络...
  • 微信小程序 如何获取时间

    万次阅读 2016-10-10 23:32:07
    获取时间直接用 Date.now() 得到一串数字.如下图: 获取格式化的时间用 util.formatTime(new Date) util是微信官方demo里面的提供的工具:如下代码 function formatTime(date) {  var year = date.getFullYear
  • c++获取时间并生成字符串

    千次阅读 2016-10-13 12:08:58
    c++获取时间并生成字符串
  • C# 获取时间

    千次阅读 2018-01-10 09:47:33
    //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateString().ToString(); // 200
  • Android中获取时间

    千次阅读 2012-08-21 14:01:37
    android中获取时间 1)通过calendar类获取 Calendar calendar = Calendar.getInstance(); int moth = calendar.get(Calendar.MONTH); int date = calendar.get(Calendar.DATE); int week = calendar...
  • 获取时间和计算时间差的几种方法总结 转载自:http://blog.csdn.net/coder_xia/article/details/6566708 一、标准C和C++都可用 1、获取时间用time_t time( time_t * timer ),计算时间差使用double ...
  • 在实际开发中,每条数据的创建时间和修改时间,尽量不需要应用程序去记录,而由数据库获取当前时间自动记录创建时间获取当前时间自动记录修改时间。 2、创建语句 (1)–添加CreateTime 设置默认时间 CURRENT_...
  • Java如何获取时间24小时制的时间

    万次阅读 2016-04-18 10:06:18
    Java可以通过SimpleDateFormat格式化类对Date进行格式话获取时间。 import java.util.*; import java.text.*; public class TestDate {  public static void main(String args[]) {  Date today=new Date(); ...
  • 一、获取时间和日期 通过java.util从系统获取当前时间 通过java.sql类型数据获取时间 将字符串转换成java.util.Date类型数据 将毫秒数转换成java.util.Date类型数据 二、数据库中存储日期的三种数据类型 三、...
  • sqlserver如何获取时间的年月?

    万次阅读 2018-07-21 11:54:42
    sqlserver如何获取时间的年月? 解决方法: 先看下面的例子:http://www.yayihouse.com/yayishuwu/chapter/1333
  • Sql Server 获取时间指定部分

    千次阅读 2014-04-12 12:09:21
    Sql Server 获取时间指定部分
  • linux在shell中获取时间

    万次阅读 2016-06-15 08:31:03
    linux在shell中获取时间 获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28   将当前日期赋值给DATE变量 DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数 ...
  • Cocos Creator 学习笔记——获取时间

    千次阅读 2017-02-21 14:52:33
    使用的是JS的获取时间函数。var testDate = new Date(); testDate.getYear(); //获取当前年份(2位) testDate.getFullYear(); //获取完整的年份(4位,1970-????) testDate.getMonth(); //获取当前月份(0-11,0代表1月) ...
  • .net后台获取时间

    千次阅读 2018-06-26 11:15:31
    在c# / ASP.net中我们可以通过使用DataTime这个类来获取当前的时间。通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。?...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,855
精华内容 54,742
关键字:

获取时间