java - Java 中的日期和时间比较

标签 java android

我正在比较两个日期和时间,但它没有按预期工作。请帮助我。

import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Date date1=convertStringToDate("2015-05-03T17:11:00Z");
        Date date2=convertStringToDate("2015-05-08T22:02:20Z");
        System.out.println("Date2:"+date1.compareTo(date2));//output 1

        Date date3=convertStringToDate("2015-05-08T21:15:29Z");
        System.out.println("Date3:"+date1.compareTo(date3));//output -1

        Date date4=convertStringToDate("2015-05-08T19:22:25Z");
        System.out.println("Date4:"+date1.compareTo(date4));//output -1

        Date date5=convertStringToDate("2015-05-08T16:46:31Z");
        System.out.println("Date5:"+date1.compareTo(date5));//output 1

        Date date6=convertStringToDate("2015-05-08T15:48:02Z");
        System.out.println("Date6:"+date1.compareTo(date6));//output 1


    }

     static  Date convertStringToDate(String input){

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'HH:MM:SS'Z'");
        Date date = null;
        try {
            date = formatter.parse(input);

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


        return  date;
    }
}

最佳答案

鉴于您的测试日期,您传递给 SimpleDateFormat 构造函数的格式 String 似乎具有小写和大写的 m混合。来自 the docs ,大写的 M 表示 年中的月份 字符,而小写的 m 表示小时中的分钟。此外,您可能需要小写的 s 表示 seconds,而不是大写的 S,后者表示 小数秒 字符。

您想要的格式似乎是"yyyy-MM-dd'T'HH:mm:ssZ"

关于java - Java 中的日期和时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30136448/

相关文章:

java - 我的 Java 程序中的 "Possible loss of precision"

java - 如何使用 session 将 ArrayList 从一个 jsp 传递到另一个 jsp

android - 将文件从 Android WPD 设备传输到 PC

android - 此 Android 代码的 MonoDroid 等价物是什么

java - ObjectAnimator 的 ofInt、ofFloat 和 ofObject 有什么区别?

java - 如何检查 URLConnection 是否已处于连接状态?

android - 在textview android中显示来自JSON的嵌套数据

android - 避免在 setAdapter 之后自动调用 Spinner 的 onItemSelected

java - 本地运行的 DynamoDb 的默认预配置吞吐量(读取和写入容量单位)是多少?

java - Android:getElapsedCpuTime 返回较少的毫秒数