java怎么比较时间的大小

现有两个String类型的时间,例如:09:00 和10:00,怎么比较大小呢?

例子:

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()

扩展资料:

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

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

参考资料:java文档date类

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-26

package com.huawei.timetest;

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


public class TimeTest
{

    public static void main(String[] args)
    {
        String t1 = "9:00";
        String t2 = "10:00";
        String result = largerTime(t1,t2);
        System.out.println(result);
    }

   
    private static String largerTime(String t1,String t2) 
    {
        Date date1 ,date2;
        DateFormat formart = new SimpleDateFormat("hh:mm");
        try
        {
            date1 = formart.parse(t1);
            date2 = formart.parse(t2);
            if(date1.compareTo(date2)<0)
            {
                return t2;
            }
            else
            {
                return t1;
            }
        }
        catch (ParseException e)
        {
            System.out.println("date init fail!");
            e.printStackTrace();
            return null;
        }
        
    }
}

希望您采纳!

追问

我是想着比较两个值的大小,返回true or false,假如两个值一样大的话怎么办呢

追答

修改一下这个函数如果你的值有一样大的可能性,就不单单是true,false能表达的了的。你可以参照date 对象的compareTo方法 进行修改
compareTo
public int compareTo(Date anotherDate)

比较两个日期的顺序。

指定者:
接口 Comparable 中的
compareTo

参数:
anotherDate - 要比较的 Date。
返回:
如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于
0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。
抛出:
NullPointerException
- 如果 anotherDate 为 null。

本回答被提问者和网友采纳
第2个回答  2014-02-26
如果只是时和分的话
你可以写一个方法:参数(time1,time2)
第一步:split(":")
第二步:时 和 分 分别比较大小(Integer.parseInt(t))
return boolean
第3个回答  2014-02-26
仅仅是一天内的对比么? 自己写个算法就行了追问

只是小时数的对比,和天也没关系,就好比怎么比较9点比10点小

追答

上面说的都可以解决我就不写了