java中如何比较两个时间字符串的大小

一种思路:用 SimpleDateFormat 来处理,可以转成long形式的,那是1970年1月1日起到现在的毫秒数。可以直接比大小了。

另外一种思路:因为你这里是用的补全格式(7月写成了07),那么可以直接字面转了比较
public static void main(String[] _s) {
String str1 = "2010-07-16 12:00:00";
long longstr1 = Long.valueOf(str1.replaceAll("[-\\s:]",""));
System.out.println(longstr1);
}
这个结果是20100716120000,就这个意思,直接字面转成long形式后比

Ⅱ java怎么比较两个日期(年和月)的大小

1、获取日期的年月

functionintgetYearMonth(Datedt){//传入日期
Calendarcal=Calendar.getInstance();
cal.setTime(dt.getTime());//设置时间
intyear=cal.get(Calendar.YEAR);//获取年份
intmonth=cal.get(Calendar.MONTH);//获取月份专
returnyear*100+month;//返回年份乘以100加上月份的值,因属为月份最多2位数,所以年份乘以100可以获取一个唯一的年月数值
}

2、比较日期

intd1=getYearMonth(newDate());
intd2=getYearMonth(newDate());
if(d1==d2){//年月相等
}elseif(d1>d2){//d1比d2晚
}else{//d1比d2早
}

Ⅲ java 怎么比较两个时间是否相等

一般时间比较是比较它的值。

一般时间表现为两种形式:

时间戳:例,1506484528223(到秒),表示回到1900年的秒数

格式化答时间:例,20170927120000 (就是格式化时间yyyyMMddHHmmss一类的)

比较时间时要转换为同一种形式比较才有意义。以下供参考,我不知道你exetime的格式:

//其中的格式按照你exetime的格式来写
Stringtimes=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate());
System.out.println(times.substring(0,10));
System.out.println(exetime.substring(0,10));
//转换相同形式后用equals判断就好了
System.out.println(times.substring(0,10).equals(exetime.substring(0,10)));

Ⅳ 多个时间如何比较 用java写!

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

public class Test {

/**
* @param args
*/

public static void main(String[] args){
String date="2099-12-12";
DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
Date d1;
try {
d1 = dateformat.parse(date);
Date d2=new Date();
if(d1.before(d2)){
System.out.println("字符串的时间早于电脑时间!");
}
if(d1.after(d2)){
System.out.println("字符串的时间晚于电脑时间!");
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

鄙视为分而来的人 !

Ⅳ java 日期怎么比较大小

例子:

String beginTime=new String("2017-06-09 10:22:22");
String endTime=new String("2017-05-08 11:22:22");

  • 直接用Date自带方法before()和after()比较

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

Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);

System.out.println(sd1.before(sd2));
System.out.println(sd1.after(sd2));

  • 用String的compareTo()方法:

Integer i=beginTime.compareTo(endTime);

System.out.println(i);

返回正值是代表左侧日期大于参数日期,反之亦然,日期格式必须一致

  • 转成date格式换成秒数比较秒数大小,getTime()方法

Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);

long long1 =sd1.getTime()

long long2= sd2.getTime()

(5)java两个时间比较扩展阅读:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

Ⅵ java中怎么比较两个日期的大小

JDK问道里 这三个方法都可以。

after:当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否内则返回
false。

before:早容

compareTo:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0
的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。

Ⅶ 如何用java比较两个时间或日期的大小

首先
按照一定的格式输入两个日期的字符串
然后用simpledateformat类转换成date实例date1,
date2
然后
calendar
cal1
=
calendar.getinstance();
calendar
cal2
=
calendar.getinstance();
cal1.settime(date1);
cal2.settime(date2);
这样你就有版了两个表示权所输入日期的calendar实例了
calendar可以做很多事
比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者cal1.compareto(cal2)来比较两个日期时间先后
比如cal.get(calendar.year)可以得到表示该日期年份的整数
同理cal.get(calendar.month)可以得到月份
甚至可以用cal.gettimeinmillis()得到表示该日期的毫秒数
有了这些方法,简单的计算之后就可以得到需要的相差的信息
如果楼主是来求现成的源代码的-
-
我没有

Ⅷ java两个string类型时间的比较

string计算不准确,最好转化为日期计算。

我写了一个函数:
//package com.color.program;

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

public class CompareTime {

public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";

try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}

/**
* 取得两个时间段的时间间隔
* @author color
* @param t1 时间1
* @param t2 时间2
* @return t2 与t1的间隔天数
* @throws ParseException 如果输入的日期格式不是0000-00-00 格式抛出异常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时间
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i<betweenYears;i++){
c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}

}

运行结果:4

Ⅸ java 中怎么比较两个时间相差的秒数

方法:

java 计算两个时间相差可以用getTime()来获得两个时间的毫秒数,可以这样计算得出两个时间的秒数的相差如下:

public int calLastedTime(Date startDate) {long a = new Date().getTime();long b = startDate.getTime();int c = (int)((a - b) / 1000);return c;}

(9)java两个时间比较扩展阅读:

1、通过Date类来获取当前时间

Date day=new Date();

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

System.out.println(df.format(day));

2、通过System类中的currentTimeMillis方法来获取当前时间

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df.format(System.currentTimeMillis()));

3、通过Calendar类来获取当前时间

Calendar c = Calendar.getInstance();//可以对每个时间域单独修改

int year = c.get(Calendar.YEAR);

int month = c.get(Calendar.MONTH);

int date = c.get(Calendar.DATE);

System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);

4、 通过Date类来获取当前时间

Date date = new Date();

String year = String.format("%tY", date);

String month = String.format("%tB", date);

String day = String.format("%te", date);

System.out.println("今天是:"+year+"-"+month+"-"+day);