Jmeter +Java Calendar 类的时间操作

时间:2021-11-12 15:36:16

引言

       想用jmeter获取最近几个月或最近一段时间时间,而Java Calendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单。由此百度到了Java Calendar 类的时间操作的一些文章。

相关原文地址如下:

http://blog.csdn.net/joyous/article/details/9630893

http://chamcon.iteye.com/blog/2144433


调试

在此结合jmeter进行调试:

如想获取“9个月后和4个月前的时间”或“获取50分钟后和50分钟前的时间”,则具体代码如下:

import java.util.Date;  
import java.text.SimpleDateFormat;  
import java.text.DateFormat;  
import java.text.ParseException;  
import java.util.Calendar; 


//显示当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
System.out.println("当前时间:" + sdf.format(now));
log.info("当前时间为:"+sdf.format(now));


//获取9个月后和4个月前的时间
Calendar nowTime = Calendar.getInstance();
nowTime.add(Calendar.MONTH, 9);//9个月后的时间
log.info("3个月后的时间为:"+sdf.format(nowTime.getTime()));
Calendar nowTime2 = Calendar.getInstance();
nowTime2.add(Calendar.MONTH, -4);//4个月前的时间
log.info("3个月前的时间为:"+sdf.format(nowTime2.getTime()));


//获取50分钟后和50分钟前的时间
Calendar nowTime = Calendar.getInstance();
nowTime.add(Calendar.MINUTE, 30);//30分钟后的时间
log.info("30分钟后的时间为:"+sdf.format(nowTime.getTime()));
Calendar nowTime2 = Calendar.getInstance();
nowTime2.add(Calendar.MINUTE, -30);//30分钟前的时间
log.info("30分钟前的时间为:"+sdf.format(nowTime2.getTime()));


运行结果如下:

Jmeter +Java Calendar 类的时间操作



扩展

对于Java Calendar 类的时间操作的其他用法也进行了尝试,具体代码如下:


import java.util.Date;  
import java.text.SimpleDateFormat;  
import java.text.DateFormat;  
import java.text.ParseException;  
import java.util.Calendar; 


//显示当前时间
String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date());
log.info("当前时间为:"+str);


// 创建 Calendar 对象  
Calendar calendar = Calendar.getInstance(); 


// 显示年份  
int year = calendar.get(Calendar.YEAR);  
log.info("year is = " + String.valueOf(year));  
  
// 显示月份 (从0开始, 实际显示要加一) 
/*
 * 在获取月份时,Calendar.MONTH + 1 的原因:
 * Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。
 * 而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。
*/  
int month = calendar.get(Calendar.MONTH);  
log.info("month is = " + (month+1));  
  
// 本周几 (实际显示要-1) 
/*
 * 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因:
 * Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。
 * 有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
看下表的返回值
 */
 //一周第一天是否为星期天  
boolean isFirstSunday = (calendar.getFirstDayOfWeek() == Calendar.SUNDAY);  
//获取周几  
int weekDay = calendar.get(Calendar.DAY_OF_WEEK); 
//若一周第一天为星期天,则-1  
if(isFirstSunday){  
    weekDay = weekDay - 1;  
    if(weekDay == 0){  
        weekDay = 7;  
    }  

log.info("weekDay is = " + (weekDay));  
  
// 今年的第 N 天  
int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);  
log.info("DAY_OF_YEAR is = " + DAY_OF_YEAR);  
  
// 本月第 N 天  
int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);  
log.info("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));  
  
// 3小时以后  
calendar.add(Calendar.HOUR_OF_DAY, 3);  
int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);  
log.info("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);  
  
// 当前分钟数  
int MINUTE = calendar.get(Calendar.MINUTE);  
log.info("MINUTE = " + MINUTE);
  
// 15 分钟以后  
calendar.add(Calendar.MINUTE, 15); 
MINUTE = calendar.get(Calendar.MINUTE); 
log.info("MINUTE + 15 = " + MINUTE);  


 // 30分钟前  
calendar.add(Calendar.MINUTE, -30);  
MINUTE = calendar.get(Calendar.MINUTE);  
log.info("MINUTE - 30 = " + MINUTE);  
  
// 格式化显示  
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());  
log.info(str);  
  
// 重置 Calendar 显示当前时间  
calendar.setTime(new Date());  
str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());  
log.info(str);  
  
// 创建一个 Calendar 用于比较时间  
Calendar calendarNew = Calendar.getInstance();  
  
// 设定为 5 小时以前,后者大,显示 -1  
calendarNew.add(Calendar.HOUR, -5);  
log.info("时间比较:" + calendarNew.compareTo(calendar));  
  
// 设定7小时以后,前者大,显示 1  
calendarNew.add(Calendar.HOUR, +7);  
log.info("时间比较:" + calendarNew.compareTo(calendar));  
  
// 退回 2 小时,时间相同,显示 0  
calendarNew.add(Calendar.HOUR, -2);  
log.info("时间比较:" + calendarNew.compareTo(calendar));


运行结果如下:

Jmeter +Java Calendar 类的时间操作