对于Linux下CPU获取指定时间的用户态、系统态以及空闲态的时间感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍linux获取cpu使用情况,并为您提供关于Calendar.getInstan
对于Linux下CPU获取指定时间的用户态、系统态以及空闲态的时间感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍linux获取cpu使用情况,并为您提供关于Calendar.getInstance()获取指定时间点(定时)、java8 获取指定时间的 unix 时间戳、java获取指定开始时间与结束时间之间的所有日期、java获取指定时间的有用信息。
本文目录一览:- Linux下CPU获取指定时间的用户态、系统态以及空闲态的时间(linux获取cpu使用情况)
- Calendar.getInstance()获取指定时间点(定时)
- java8 获取指定时间的 unix 时间戳
- java获取指定开始时间与结束时间之间的所有日期
- java获取指定时间
Linux下CPU获取指定时间的用户态、系统态以及空闲态的时间(linux获取cpu使用情况)
实验原理:通过/proc/stat 获取CPU时间,在Linux的内核中,有一个全局变量:Jiffies。 Jiffies代表时间。它的单位随硬件平台的不同而不同。系统里定义了一个常数HZ,代表每秒种最小时间间隔的数目。这样jiffies的单位就是 1/HZ。每个CPU时间片,Jiffies都要加1。通过sleep延迟,两次获取cpu时间,通过各个时间做差值,从而得出CPU处在各个状态的时间。
#!/bin/sh
CPULOG_1=$(cat /proc/stat | grep ''cpu '' | awk ''{print $2" "$3" "$4" "$5" "$6" "$7" "$8}'')
USR1=$(echo $CPULOG_1 | awk ''{print $2}'')
NICE1=$(echo $CPULOG_1 | awk ''{print $3}'')
SYS_IDLE_1=$(echo $CPULOG_1 | awk ''{print $4}'')
IDLE1=$(echo $CPULOG_1 | awk ''{print $5}'')
IOWAIT1=$(echo $CPULOG_1 | awk ''{print $6}'')
IRQ1=$(echo $CPULOG_1 | awk ''{print $7}'')
SOFTIRQ1=$(echo $CPULOG_1 | awk ''{print $8}'')
Total_1=$(echo $CPULOG_1 | awk ''{print $2+$3+$4+$5+$6+$7+$8}'')
Free1=$(echo $CPULOG_1 | awk ''{print $3+$5+$6+$7+$8}'')
sleep 20
CPULOG_2=$(cat /proc/stat | grep ''cpu '' | awk ''{print $2" "$3" "$4" "$5" "$6" "$7" "$8}'')
USR2=$(echo $CPULOG_2 | awk ''{print $2}'')
NICE2=$(echo $CPULOG_2 | awk ''{print $3}'')
SYS_IDLE_2=$(echo $CPULOG_2 | awk ''{print $4}'')
IDLE2=$(echo $CPULOG_2 | awk ''{print $5}'')
IOWAIT2=$(echo $CPULOG_2 | awk ''{print $6}'')
IRQ2=$(echo $CPULOG_2 | awk ''{print $7}'')
SOFTIRQ2=$(echo $CPULOG_2 | awk ''{print $8}'')
Total_2=$(echo $CPULOG_2 | awk ''{print $2+$3+$4+$5+$6+$7+$8}'')
Free2=$(echo $CPULOG_2 | awk ''{print $3+$5+$6+$7+$8}'')
USR=`expr $USR2-$USR1|bc`
NICE=`expr $NICE2-$NICE1|bc`
SYS_IDLE=`expr $SYS_IDLE_2 - $SYS_IDLE_1|bc`
IDLE=`expr $IDLE2-$IDLE1|bc`
IOWAIT=`expr $IOWAIT2-$IOWAIT1|bc`
IRQ=`expr $IRQ2-$IRQ1|bc`
SIRQ=`expr $SOFTIRQ2-$SOFTIRQ1|bc`
Total=`expr $Total_2 - $Total_1|bc`
Free=`expr $Free2-$Free1|bc`
echo $USR user
echo $NICE nice_
echo $SYS_IDLE sys
echo $IDLE idle
echo $IOWAIT iowait
echo $IRQ irq
echo $SIRQ sirq
echo $Total all
echo $Free free_
Calendar.getInstance()获取指定时间点(定时)
public class Test1 {
public static void main(String[]args){
System.out.println("时间为:\n"+getDate1()+"\n"+getDate2()+"\n"+getDate3()+"\n"+getDate4()+"\n"+getDate5());
}
/* Calendar.HOUR_OF_DAY 24小时制
Calendar.HOUR 12小时制*/
//获取当天0点时间
public static String getDate1(){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);//控制时
cal.set(Calendar.MINUTE, 0);//控制分
cal.set(Calendar.SECOND, 0);//控制秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(cal.getTime());
}
//获取当天12点时间
public static String getDate2(){
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(cal.getTime());
}
//获取本周一0点时间
public static String getDate3(){
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(cal.getTime());
}
//获取本月第一天0点时间
public static String getDate4(){
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0);
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DAY_OF_MONTH));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(cal.getTime());
}
//获得本月最后一天24点时间
public static String getDate5(){
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0);
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, 24);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(cal.getTime());
}
}
java8 获取指定时间的 unix 时间戳
//获取每天11点的时间戳,其他需求自己扩展 Function<Integer, Long> toEpochMilli = hour -> LocalDateTime.of( LocalDate.now().getYear(), LocalDate.now().getMonth(), LocalDate.now().getDayOfMonth(), 11, 0, 0, 0 ) .toInstant(ZoneOffset.ofHours(hour)) .toEpochMilli();
//获取当前时间时间戳 System.currentTimeMillis(); Clock.systemUTC().millis(); Instant.now().toEpochMilli(); LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
java获取指定开始时间与结束时间之间的所有日期
这篇文章主要为大家详细介绍了java获取指定开始时间与结束时间之间的所有日期,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了java获取指定开始时间与结束时间之间的所有日期的具体代码,供大家参考,具体内容如下
import java.text.SimpleDateFormat; import java.util.Calendar; public class TimerTest { public static void main(String[] args) throws Exception { String beginDate = "2016-07-16";//开始时间 String endDate = "2016-07-25";//结束时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(beginDate)); for (long d = cal.getTimeInMillis(); d
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小编。
java获取指定时间
1、上代码


1 package com.hynn.gajq.service.user;
2
3 import java.sql.Timestamp;
4 import java.text.ParseException;
5 import java.text.SimpleDateFormat;
6 import java.util.Calendar;
7 import java.util.Date;
8 import java.util.TimeZone;
9
10 import org.apache.commons.lang3.time.DateUtils;
11
12 public class test {
13
14 public static void main(String[] args) {
15 // TODO Auto-generated method stub
16 Long time = System.currentTimeMillis(); // 当前时间的时间戳
17 long zero = time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();// 今天零点零分零秒的毫秒数
18 long twelve = zero + 24 * 60 * 60 * 1000 - 1;// 今天23点59分59秒的毫秒数
19 System.out.println("今天零点零分零秒:" + new Timestamp(zero));// 今天零点零分零秒
20 System.out.println("今天23点59分59秒:" + new Timestamp(twelve));// 今天23点59分59秒
21 System.out.println("======================================");
22 }
23
24 /**
25 * 获取上周一00:00:00
26 *
27 * @return
28 * @throws ParseException
29 */
30 public static long getMonday() throws ParseException {
31 Date date = new Date();
32 Date a = DateUtils.addDays(date, -1);
33 Calendar cal = Calendar.getInstance();
34 cal.setTime(a);
35 cal.add(Calendar.WEEK_OF_YEAR, -1);// 一周
36 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
37 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
38 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
39 String dateStr = sdf.format(cal.getTime());//
40 Date parse = sdf2.parse(dateStr + " 00:00:00");
41 System.out.println(parse.getTime());// 上周一零点毫秒数
42 return parse.getTime();
43 }
44
45 /**
46 * 本月或上月第一天00:00:00 flag=1--本月 flag=2--上月 getFirstDay()
47 *
48 * @param flag
49 * @return
50 */
51 public static String getFirstDay(Integer flag) {
52 Calendar c = Calendar.getInstance();
53 if (flag == 1) {
54 c.add(Calendar.MONTH, 0); // 获取当前月第一天
55 } else if (flag == 2) {
56 c.add(Calendar.MONTH, -1); // 获取上月第一天
57 }
58 c.set(Calendar.DAY_OF_MONTH, 1); // 设置为1号,当前日期既为本月第一天
59 c.set(Calendar.HOUR_OF_DAY, 0); // 将小时至0
60 c.set(Calendar.MINUTE, 0); // 将分钟至0
61 c.set(Calendar.SECOND, 0); // 将秒至0
62 c.set(Calendar.MILLISECOND, 0); // 将毫秒至0
63 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
64 return sdf.format(c.getTime());
65 }
66
67 /**
68 * 本月或上月最后一天23:59:59 flag=1--本月 flag=2--上月 getLastDay()
69 *
70 * @param flag
71 * @return
72 */
73 public static String getLastDay(Integer flag) {
74 Calendar ca = Calendar.getInstance();
75 if (flag == 1) {
76 ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); // 获取当前月最后一天
77 } else if (flag == 2) {
78 ca.set(Calendar.DAY_OF_MONTH, 0); // 获取上月最后一天
79 }
80 ca.set(Calendar.HOUR_OF_DAY, 23); // 将小时至23
81 ca.set(Calendar.MINUTE, 59); // 将分钟至59
82 ca.set(Calendar.SECOND, 59); // 将秒至59
83 ca.set(Calendar.MILLISECOND, 59); // 将毫秒至59
84 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
85 return sdf.format(ca.getTime());
86 }
87
88 /**
89 * 时间戳转换日期
90 *
91 * @param stamp
92 * @return
93 */
94 public String stampToTime(String stamp) {
95 String sd = "";
96 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
97 sd = sdf.format(new Date(Long.parseLong(stamp))); // 时间戳转换日期
98 return sd;
99 }
100
101 /**
102 * 日期转换为时间戳
103 *
104 * @param timers
105 * @return
106 */
107 public long timeToStamp(String timers) {
108 Date d = new Date();
109 long timeStemp = 0;
110 try {
111 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
112 d = sf.parse(timers);// 日期转换为时间戳
113 } catch (ParseException e) {
114 e.printStackTrace();
115 }
116 timeStemp = d.getTime();
117 System.out.println(timeStemp);
118 return timeStemp;
119 }
120
121 }
关于Linux下CPU获取指定时间的用户态、系统态以及空闲态的时间和linux获取cpu使用情况的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Calendar.getInstance()获取指定时间点(定时)、java8 获取指定时间的 unix 时间戳、java获取指定开始时间与结束时间之间的所有日期、java获取指定时间的相关知识,请在本站寻找。
本文标签: