导航:首页 > 编程语言 > java判断时间先后顺序

java判断时间先后顺序

发布时间:2022-09-23 20:56:11

1. java正则表达式的问题,有一个时间字符串(yyyyMMdd),怎么判断他在一个时间区间类,时间区间随时变化。

你这个很简单,不需要转成long再比较,java.util.Date已经有after()、before()等方法来比较两个时间的先后顺序了。示例代码如下:

	/**
*检测一个时间是否在一个时间区间之内
*@paramstart有效的开始时间
*@paramend有效的结束时间
*@paramcheck待检测时间
*@return
*/
publicbooleancheckValidDay(Datestart,Dateend,Datecheck){
if(check.after(start)&&check.before(end)){
returntrue;
}else{
returnfalse;
}
}

@Test
publicvoidtest()throwsParseException{
StringvalidStartDayStr="20170501";//有效的开始时间
StringvalidEndDayStr="20171231";//有效的结束时间

StringtestDay1Str="20160101";//测试时间1
StringtestDay2Str="20170720";//测试时间2
StringtestDay3Str="20181230";//测试时间3

DateFormatformat=newSimpleDateFormat("yyyyMMdd");

DatestartDay=format.parse(validStartDayStr);
DateendDay=format.parse(validEndDayStr);

DatetestDay1=format.parse(testDay1Str);
DatetestDay2=format.parse(testDay2Str);
DatetestDay3=format.parse(testDay3Str);

System.out.println(checkValidDay(startDay,endDay,testDay1));
System.out.println(checkValidDay(startDay,endDay,testDay2));
System.out.println(checkValidDay(startDay,endDay,testDay3));
}

测试代码输出如下:

false
true
false

2. 关于java的时间问题

class Time{
int hour, minute, second;
public Time(){
}
public Time(int h, int m, int s){
this.hour=h;
this.minute=m;
this.second=s;
this.hour=h;
}
public void setTime(int h, int m, int s){
this.minute=m;
this.second=s;
}
public boolean after(Time b){
if(this.hour>b.hour){
return true;
}else if(this.hour==b.hour){
if(this.minute>b.minute){
return true;
}else if(this.minute==b.minute){
if(this.second>b.second){
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
//也可以转换成相对时间的int,再一次比较。
}
public String toString(){return hour+":"+minute+":"+second;}
}

public class TimeTest{

public static void main(String[] args) {
Time t1 = new Time(10, 11, 12);
Time t2 = new Time(10, 11, 11);
System.out.println(t1);
System.out.println(t2);
System.out.println(t1.after(t2));
}
}

3. java怎样判断下面的日期的先后

Java判段两个日期的先后,方法如下:

importjava.util.Date;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;publicclassTestD{
publicstaticvoidmain(String[]args){

Stringdate1="2017-07-1913:02:58";

Stringdate2="2017-07-1914:02:58";
//将字符串格式的日期格式化
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
try{
//将日期转成Date对象作比较
DatefomatDate1=sdf.parse(date1);
DatefomatDate2=sdf.parse(date2);
//比较两个日期
intresult=fomatDate2.compareTo(fomatDate1);
//如果日期相等返回0
if(result==0){
System.out.println("两个时间相等");
}elseif(result<0){
//小于0,参数date1就是在date2之后
System.out.println("date1大于date2");
}else{
//大于0,参数date1就是在date2之前
System.out.println("date1小于date2");
}

}catch(ParseExceptione){

e.printStackTrace();
}
}
}
结果:
date1小于date2

4. Java项目中有按时间排序(可正序,可倒叙),热度排序(可正序,可倒叙)该怎么做

数据是存在数据库中,可以通过sql查询实现数据的排序
数据存储在redis中,通过zset实现排序

5. java 时间比较

你好,很高兴回答你的问题。
具体不清楚你用的是哪个类。不过应该是提供了compareTo方法了。
用这个方法就可以比较。
比如两个java.util.Date的对象a,b。
调用a.compareTo(b),如果返回小于0,说明a早于b,如果返回等于0说明两个时间相同,如果返回大于0,说明a晚于b。
如果有帮助到你,请点击采纳。

6. java实现日期排序问题

java按文件日期排序方法,下面以对C盘Java目录下文件进行按日期排序为例:

//引用java.io包里的所有类
importjava.io.*;
importjava.util.*;
publicclassFileOrder{
//按日期排序
publicstaticvoidorderByDate(StringfliePath){
Filefile=newFile(fliePath);
File[]fs=file.listFiles();
Arrays.sort(fs,newComparator<File>(){
publicintcompare(Filef1,Filef2){
longdiff=f1.lastModified()-f2.lastModified();
if(diff>0)
return1;
elseif(diff==0)
return0;
else
return-1;
}
publicbooleanequals(Objectobj){
returntrue;
}

});
for(inti=fs.length-1;i>-1;i--){
System.out.println(fs[i].getName());
System.out.println(newDate(fs[i].lastModified()));
}
}
publicstaticvoidmain(Stringargs[]){
orderByDate("c:/java");//调用方法对c:/java目录下文件按日期排序
}
}

7. JAVA两个时间段 排序 求大神回答

转换毫秒,用毫秒比较,然后较并用冒泡排序法比排序,代码请自己写

8. java判断开始时间结束时间

try{
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM");
java.util.Calendar starCalendar = java.util.Calendar.getInstance();
java.util.Calendar endCalendar = java.util.Calendar.getInstance();

String starStr = "2011-11";
String endStr = "2012-02";
java.util.Date starDate = sdf.parse(starStr);
java.util.Date endDate = sdf.parse(endStr);

starCalendar.setTime(starDate);
endCalendar.setTime(endDate);
int instance = endCalendar.compareTo(starCalendar);

while(endCalendar.compareTo(starCalendar)>=0){
System.out.println(sdf.format(starCalendar.getTime()));
//这里我输出了,你可以自行处理,List等进行操作
starCalendar.add(Calendar.MONTH, 1);
}

}catch(ParseException e){
e.printStackTrace();
}


9. JAVA 日期排序

前提,假设你使用一个数组来保存一组开始时间+结束时间,当然,你也可以用其它的数据结构。

基本思路,1转换为Date型,2使用Calendar类来比较两个日期,3 自己实现compare方法:

各部分的例子:
=newSimpleDateFormat("yyyy年MM月dd日");
DatestartDate1=simpleDateFormat.parse("2018年3月18日");
DatestartDate2=simpleDateFormat.parse("2018年3月12日");

privatevoidsort(List<Date>dataList){
Collections.sort(dataList,newComparator<Date>(){
@Override
publicintcompare(Dateo1,Dateo2){
if(d1!=null&&d2!=null){
Calendarc1=Calendar.getInstance();
Calendarc2=Calendar.getInstance();
c1.setTime(o1);
c2.setTime(o2);
returnc1.After(c2);
}else{
return-1;
}
}
});
}

大概写了下,具体你自己调调,还要注意异常处理。

10. java 中 判断时间问题

用java中date的before方法,date1.before(date2),返回boolean 类型
if(date1.before(date2)){
//date1比date2时间提前
}else{
//date2比date1时间提前
}
下面是示例:
//判断当前时间是否在时间date2之前
//时间格式 2005-4-21 16:16:34
public static boolean isDateBefore(Date date2){
Date date1 = new Date();//当前时间
return date1.before(date2);
}

阅读全文

与java判断时间先后顺序相关的资料

热点内容
tcl笔试题java 浏览:467
win10怎么登录安全模式 浏览:679
除了archdaily还有什么网站 浏览:567
数控下料圆形怎么编程 浏览:785
安装游戏在文件管理找不到怎么办 浏览:216
想买奢侈包包下载什么app 浏览:1000
闪送员是哪里的app 浏览:530
火车站进站闸机的数据哪里可以查 浏览:503
cad备份文件清理软件 浏览:822
夹具装配图cad文件百度网盘 浏览:567
如何将excel表格转成文件包 浏览:1
网络配置文件应该怎么设置 浏览:886
苹果全能文件王下载位置 浏览:700
中国知网是哪些数据库 浏览:280
fastjson优点 浏览:302
mstcam数控铣床编程如何串连 浏览:502
d4252用什么软件编程 浏览:35
大学生如何参与大数据 浏览:779
autocad3维教程 浏览:2
港澳台版本有什么区别 浏览:263

友情链接