问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java字符串日期排序比较问题11

发布网友 发布时间:2023-10-31 16:33

我来回答

4个回答

热心网友 时间:2024-08-05 12:37

排序么?

import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

public class Test {
    public static void main(String args[]) {

        System.out.println("字符串比较");
        test1();
        System.out.println("Date比较");
        test2();
    }

    private static void test1() {
        List<String> data = init();

        System.out.println("排序前" + data);

        Collections.sort(data, new Comparator<String>() {

            public int compare(String o1, String o2) {

                String[] arr1 = o1.split("_");
                String[] arr2 = o2.split("_");

                int comparator = toInt(arr1[0], -1) - toInt(arr2[0], -2);

                if (comparator == 0) {
                    comparator = toInt(arr1[1], -1) - toInt(arr2[1], -2);
                    if (comparator == 0) {
                        return toInt(arr1[2], -1) - toInt(arr2[2], -2);
                    }
                }
                return comparator;
            }
        });
        System.out.println("排序后" + data);
    }

    private static void test2() {
        List<String> data = init();
        System.out.println("排序前" + data);

        final Format f = new SimpleDateFormat("yyyy-MM-dd");
        Collections.sort(data, new Comparator<String>() {

            public int compare(String o1, String o2) {

                Date d1;
                Date d2;
                try {
                    d1 = (Date) f.parseObject(o1);
                    d2 = (Date) f.parseObject(o2);
                    return d1.compareTo(d2);
                } catch (Exception e) {
                    e.printStackTrace();
                }

                return 0;
            }
        });
        System.out.println("排序后" + data);
    }

    private static List<String> init() {

        List<String> data = new ArrayList<String>();
        data.add("2013-3-3");
        data.add("2012-4-4");
        return data;
    }

    private static int toInt(String str, int delVal) {
        try {
            return Integer.parseInt(str);
        } catch (Exception e) {
            return delVal;
        }
    }

}

字符串比较
排序前[2013-3-3, 2012-4-4]
排序后[2012-4-4, 2013-3-3]
Date比较
排序前[2013-3-3, 2012-4-4]
排序后[2012-4-4, 2013-3-3]

热心网友 时间:2024-08-05 12:32

格式一样的自己比较字符串即可

热心网友 时间:2024-08-05 12:37

package com.zz;

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

public class Demo4 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "2012-4-4";
String s2 = "2013-3-3";
Demo4 demo4 = new Demo4();
int result = demo4.compare(s1, s2);
System.out.println(result);
}

public int compare(String s1, String s2) {
boolean flag = false;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd",
Locale.CHINA);
try {
Date d1 = simpleDateFormat.parse(s1);
Date d2 = simpleDateFormat.parse(s2);
if (d1.getTime() > d2.getTime()) {
flag = true;
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (flag) {
return 1;
} else {
return -1;
}
}

}

ps:split就不要用了。这是在自虐。

热心网友 时间:2024-08-05 12:37

SimpleDateFormat 转成Date

Date.before(Date)
Date.after(Date)

import java.util.*;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class DateCompare{
public static void main(String [] argv)throws ParseException{
String s1="2012-4-4";
String s2="2013-3-3";
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-M-d");
Date d1=fmt.parse(s1);
Date d2=fmt.parse(s2);
if(d2.after(d1)){
System.out.println(s2+">"+s1);
}else{
System.out.println(s2+"!>"+s1);
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求助:补全成语. _然而止、_然不屈、_然四顾、_然若失、_然而至、_然拒绝、_然无声... 我姑妈(姑妈去世),现奶奶的房产 姑妈的女儿有继承权吗? 丈夫去世遗产应该能怎么分配 《人世间》骆士宾遗产股权归谁所有 为什么说曹珊不应该得罪水自流_百 ... 有谁知我国十大元帅及十大上将? 解放中国的10大元帅是那几个? 对中国有何影响? 中国历史上的十大元帅 为什么中国过去有元帅现在没有了 ...想看中国80年代、90年代热播的电视剧,《渴望》、《蛙女》等,越多... 什么牌子的手机可以同时登录多个? steam官方头像怎么下载下来?我的steam头像是直接从它...5 steam怎么换头像呀大佬们1 乐百视网络电视机顶盒l6怎么安装不了第三方软件3 怎样清理地上的狗毛 如何清理木地板上的狗毛?3 李清照的一生的详细经历?111 李清照的家庭背景?78 同一个手机号注册两个,新的刚注销,旧的怎么找回? 李清照的身份?2 李清照的身世经历35 李清照的身世93 肖像拼音 CHROME浏览器如何多开。。。3 谷歌浏览器玩网页游戏如何? 机械制图 求左视图1 求助,chrome玩网页游戏如何多开 一个人能有几个码吗?214 设置路由器的时候需要手动输入网络服务商提供的基本网络参数22 QQ微云软件有什么用处121 新房入宅当晚能留客人过夜吗41 乐百视网络机顶盒怎么连不上Wi-Fi 数字电视机顶盒怎么连接l62g电视 一个人可以拥有几个?4 各显神通,让我想到了什么中的什么?30 字符串日期怎么比较大小5 3V的LED灯珠接12V电源用多大电阻? 找首歌,里面有句歌词是baby don&#39;t go英文的,谢谢 搬家当天晚上不住人行吗18 宾辉瓷砖是几线品牌 搬家当天可以不住家里吗。110 搬家当天可以不住家里吗? QQ空间飘玫瑰花瓣 在PLC中,常开I0.0,常闭I0.1,输出线圈M0.2;和常开I0.0,常开I0.1,输出线 ... 在抖音上卖东西能赚钱吗? 鸡兔同笼35个头94只脚用java程序解决 用for循环解决...8 gtx10603g和i38100和h310主板加12g内存用400w的电源会不会出事? 微云的功能详解1 萝卜丝丸子的做法,炸红萝卜丝丸子怎么做好 手机上有什么软件可以把图片变成荧光的1