时间
1.获得当前时间(Timestamp类型)
获得Timestamp时间类型的当前时间
可通过调整type = "yyyy-MM-dd HH:mm:ss" 来设置时间格式
public static Timestamp getNowTime(){
String type = "yyyy-MM-dd HH:mm:ss";
Date date1=new Date();
SimpleDateFormat format1=new SimpleDateFormat(type);
Timestamp time = Timestamp.valueOf(format1.format(date1));
return time;
}
运行结果:
2.获得当前时间(Date类型)
LocalDateTime nowTime = LocalDateTime.now();
System.out.println(nowTime);
运行结果:
3.时间类型转换--String转换为Date类型
/**将字符串转换为日期*/
String dateStr= "2018年12月18日";
//设置日期字符串的格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
LocalDate date= LocalDate.parse(dateStr, formatter);
System.out.println(date);
运行结果:
4.时间类型转换--Date类型转换为String
/**将日期转换为字符串*/
LocalDateTime now = LocalDateTime.now();
//设置转换后日期字符串的格式
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(format);
System.out.println(nowStr);
运行结果:
5.时间类型转换--String转换为Timestamp类型
String startTime = "2021-10-09 01:00:00";
Timestamp timestampStart = Timestamp.valueOf(startTime);
System.out.println(timestampStart);
运行结果:
6.时间类型转换--Timestamp类型转换为String
System.out.println("----------------时间类型转换--String转换为Timestamp类型-----------------------");
String startTime = "2021-10-09 01:00:00";
Timestamp timestampStart = Timestamp.valueOf(startTime);
System.out.println(timestampStart);
System.out.println("----------------时间类型转换--Timestamp类型转换为String-----------------------");
String startTime1 = String.valueOf(timestampStart);
System.out.println(startTime1);
运行结果:
7.获得上个月的月份--String类型
LocalDate today = LocalDate.now();
today = today.minusMonths(1);
DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM");
System.out.println(formatters.format(today));
运行结果:
8.获得昨日的当前时刻--Timestamp类型
System.out.println("----------------获得昨日的当前时刻-----------------------");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.DATE, -1);
Date startTime111 = c.getTime();
Timestamp timestampStart111 = new Timestamp(startTime111.getTime());
System.out.println("昨日的当前时刻:" + timestampStart111);
运行结果:
9.获得昨日日期--String类型
System.out.println("----------------获得昨日日期-----------------------");
Calendar cal=Calendar.getInstance();
cal.add(Calendar.DATE,-1);
Date d=cal.getTime();
SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd");
String prevDay=sp.format(d);
System.out.println(prevDay);
运行结果:
10.Date类型转为Timestamp类型
System.out.println("----------------Date类型转为Timestamp类型-----------------------");
Date dateq = new Date();
System.out.println("Date类型时间:" + dateq);
Timestamp nousedate = new Timestamp(dateq.getTime());
System.out.println("Timestamp类型时间:" + nousedate);
运行结果:
11.获取去年、上个月、昨天的日期(封装方法)
参数time为String形式的时间
例如:“2021-10-23”或“2021-10”或“2021”
public static String getPrev11(String time){
String[] strings = time.split("-");
if (Integer.parseInt(strings[strings.length - 1] ) <= 10){
strings[strings.length - 1] = "0" + String.valueOf(Integer.parseInt(strings[strings.length - 1]) - 1);
}else {
strings[strings.length - 1] = String.valueOf(Integer.parseInt(strings[strings.length - 1]) - 1);
}
String time1 = StringUtils.join(strings, "-");
return time1;
}
运行结果:
12.获得当前是周几
判断今天是周几
/**当前是周几*/
public static String getDayOfTheWeek(){
String[][] strArray = {{"MONDAY", "一"}, {"TUESDAY", "二"},
{"WEDNESDAY","三"},{"THURSDAY","四"},{"FRIDAY","五"},
{"SATURDAY","六"},{"SUNDAY","七"}};
LocalDate currentDate = LocalDate.now();
String k = String.valueOf(currentDate.getDayOfWeek());
for (int i =0; i < strArray.length; i++){
if (k.equals(strArray[i][0])){
k = strArray[i][1];
break;
}
}
return "周" + k;
}
测试:
13.判断当前是否处于某时间段内(周几-周几)
假设要判断今天是否处于“周三—周六”之间,是的话返回true,不是返回false
(1)先将周几转换为对应的数字,例如周一:1、周三:3 ...
/**把周几转换为对应的数字*/
public static int weekToNum(String week){
switch (week){
case "周一": return 1;
case "周二": return 2;
case "周三": return 3;
case "周四": return 4;
case "周五": return 5;
case "周六": return 6;
default: return 7;
}
}
(2)判断当前是否处于某一“周x—周x”的时间段内
public static boolean checkDay(String startWeek, String endWeek, String nowWeek){
boolean result = false;
int startWeekToNum = weekToNum(startWeek);
int endWeekToNum = weekToNum(endWeek);
int nowWeekToNum = weekToNum(nowWeek);
if (nowWeekToNum >= startWeekToNum && nowWeekToNum <= endWeekToNum){
result = true;
return result;
}else {
return result;
}
}
测试:
结果:
14.判断当前时间是否处于某一时间段内
例如:判断当前时间是否处于“8:30--21:30”之间
/**判断当前时间是否处于某一时间段内*/
public static boolean isInTime(String startTime, String endTime, String nowTime){
String periodTime = startTime + "-" + endTime;
if (periodTime ==null || !periodTime.contains("-") || !periodTime.contains(":")){
throw new IllegalArgumentException("Illegal Argument arg:" + periodTime);
}
if (nowTime == null || !nowTime.contains(":")){
throw new IllegalArgumentException("Illegal Argument arg:" + nowTime);
}
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
try {
long now = sdf.parse(nowTime).getTime();
long start = sdf.parse(startTime).getTime();
long end = sdf.parse(endTime).getTime();
if (endTime.equals("00:00")){
endTime = "24:00";
}
if (end < start){
if (now >= end && now < start){
return false;
}else {
return true;
}
}else {
if (now >= start && now < end){
return true;
}else {
return false;
}
}
}catch (ParseException e){
e.printStackTrace();
throw new IllegalArgumentException("Illegal Argument arg:" + periodTime);
}
}
测试:
结果:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。