2012-12-05 16:45:54 xingwang_ye 阅读数 2555
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

echo `expr \`date +%s%N\` / 1000000`

-----------------------------------------------------

#/bin/bash
declare startTime=`date +%s%N`;
echo `expr $startTime / 1000000`

 

-----------------------------

#/bin/bash

#test.sh
declare time_now=`expr \`date +%s%N\` / 1000000`;
echo 当前时间毫秒:$time_now;

declare time000n=`date -d \`date +%Y%m%d\` +%s%N`;

declare time_0=`expr $time000n / 1000000`;
echo 当前时间取0时0分0秒的毫秒数:$time_0

 

 

2017-10-20 10:53:17 xupengbo527 阅读数 619
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

DateFormat  formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

formatter.format(毫秒值);此时得到的就是date时间格式。


注:HH:mm:ss 表示24小时。hh:mm:ss表示12小时的

2019-12-31 22:25:54 bowenlaw 阅读数 5
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

shell 没有直接的毫秒计时单位 只有秒(s)和纳秒(ns)
换算公式:

1s=1000ms

1ms=1000 microseconds

1microsecond=1000 nanoseconds

1 计算秒间隔

starttime=`date +'%Y-%m-%d %H:%M:%S'`
endtime=`date +'%Y-%m-%d %H:%M:%S'`
start_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
echo "本次运行时间: "$((end_seconds-start_seconds))"s"

2 计算纳秒间隔

function getMicroTiming(){ 
    start=$1
    end=$2
  
    start_s=$(echo $start | cut -d '.' -f 1)
    start_ns=$(echo $start | cut -d '.' -f 2)
    end_s=$(echo $end | cut -d '.' -f 1)
    end_ns=$(echo $end | cut -d '.' -f 2)
    time_micro=$(( (10#$end_s-10#$start_s)*1000000 + (10#$end_ns/1000 - 10#$start_ns/1000) )) 
    echo "$time_micro microseconds"
} 
begin_time=`date +%s.%N` 
###自己程序
echo 程序运行成功!!
end_time=`date +%s.%N` 
result=$(getMicroTiming $start $end) 
echo $result 

3 计算毫秒间隔

利用秒和纳秒转换

function getTiming(){ 
    start=$1
    end=$2
  
    start_s=$(echo $start | cut -d '.' -f 1)
    start_ns=$(echo $start | cut -d '.' -f 2)
    end_s=$(echo $end | cut -d '.' -f 1)
    end_ns=$(echo $end | cut -d '.' -f 2)


    time=$(( ( 10#$end_s - 10#$start_s ) * 1000 + ( 10#$end_ns / 1000000 - 10#$start_ns / 1000000 ) ))

    echo "$time ms"
} 
start=$(date +%s.%N)
echo 1231223dasdasdas 
end=$(date +%s.%N)
result=$(getTiming $start $end) 
echo $result 

4 data使用

  • date的%s和%N
    date中有很多控制格式的,其中%s是获取当前时间距离1970-01-01 00:00:00 UTC的时间差。date的其它很多格式控制都是控制当前时间的输出格式而已,比如只输出时分秒,只输出年月日等等,其中%N也是这一类,%N输出的是当前时间的纳秒部分,由于date并没有毫秒等级别的输出,所以在秒以下的内容都属于纳秒部分。所以从这个角度说,date是可以很精确的,可以达到纳秒级别。
  • 取一个时间戳

有时候会使用时间戳,或者随机数,UUID这样的东西,百度一下也有相关文章(比如搜索”shell date随机数“等)。一般来说,可以用%s和%N组合的方式就没问题,同一秒内,两次运行%N肯定不会一样,所以%s和%N组合能得到一个唯一数。

#date +%s.%N
1337435374.969263560
#date +%s+%N
1337435377+310281496
#date +%s_%N
1337435381_209334510
#date +%s_%N
1337435383_169263078
#date +%s_%N
1337435383_830009679

参考链接:https://blog.csdn.net/gengshenghong/article/details/7583580

2013-03-24 21:25:52 zhrh0096 阅读数 7311
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

man date

%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale’s equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%r locale’s 12-hour clock time (e.g., 11:11:04 PM)
%R 24-hour hour and minute; same as %H:%M
%s seconds since 1970-01-01 00:00:00 UTC
%S second (00..60)

%n就是纳秒数,%s是1970以来的秒数
1毫秒 等于 1000 * 1000 纳秒


START=`date +%s%N`;
sleep 3;
END=`date +%s%N`;
time=$((END-START))
time=`expr $time / 1000000`
echo $time
2018-08-28 12:26:50 yudingding6197 阅读数 189
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

1. 秒级精度的时间

time() .

    1、头文件 <time.h> 
    2、函数原型 
time_t time(time_t * timer) 
函数返回从TC1970-1-1 0:0:0开始到现在的秒数 

sysinfo结构

struct sysinfo {
               long uptime;             /* Seconds since boot */
               unsigned long loads[3];  /* 1, 5, and 15 minute load averages */
               unsigned long totalram;  /* Total usable main memory size */
               unsigned long freeram;   /* Available memory size */
               unsigned long sharedram; /* Amount of shared memory */
               unsigned long bufferram; /* Memory used by buffers */
               unsigned long totalswap; /* Total swap space size */
               unsigned long freeswap;  /* swap space still available */
               unsigned short procs;    /* Number of current processes */
               char _f[22];             /* Pads structure to 64 bytes */
           };

成员 uptime 表示从计算机上电到当前的运行秒数,比如开机了20分钟,uptime就是 20*60 = 1200;

2. 毫秒、微妙级别精度

此时 time(), sysinfo 无法满足需求,需要

int clock_gettime(clockid_t clk_id, struct timespec *tp)

int gettimeofday(struct timeval*tv, struct timezone *tz);

clock_gettime() 参数 clk_id 常用:

CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,如果系统时间被用户改成其他,则对应的时间相应改变
CLOCK_REALTIME_COARSE:和CLOCK_REALTIME类似,但是执行速度快,精度低
CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响
CLOCK_MONOTONIC_COARSE :和CLOCK_MONOTONIC类似,但是执行速度快,精度低
CLOCK_BOOTTIME:和  CLOCK_MONOTONIC 类似,但是包括了系统休眠的时间。
CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间
CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间

 

 

Linux—获取时间

阅读数 1

没有更多推荐了,返回首页