Java 将2015年3月3日转换为2015年3月3日的简单快捷方式

Java 将2015年3月3日转换为2015年3月3日的简单快捷方式,java,date,converter,Java,Date,Converter,我需要将2015年3月3日转换为2015年3月3日 这是我的代码: public class getCorrectDates { public static void main(String[] args) throws ParseException { List<String> dates = getCorrectDates.getDates("3/2/2014", "03/03/2015"); System.out.println(d

我需要将2015年3月3日转换为2015年3月3日

这是我的代码:

public class getCorrectDates {

    public static void main(String[] args) throws ParseException {

        List<String> dates = getCorrectDates.getDates("3/2/2014", "03/03/2015");

        System.out.println(dates);

    }

    public static List getDates(String dateStart, String dateEnd) throws ParseException {

        List<Date> dates = new ArrayList<Date>();
        List<String> formattedDates = new ArrayList<String>();

        DateFormat formatter;

        formatter = new SimpleDateFormat("MM/dd/yyyy");
        Date startDate = (Date) formatter.parse(dateStart);
        Date endDate = (Date) formatter.parse(dateEnd);
        long interval = 24 * 1000 * 60 * 60; // 1 hour in millis
        long endTime = endDate.getTime(); // create your endtime here, possibly using Calendar or Date
        long curTime = startDate.getTime();
        while (curTime <= endTime) {
            dates.add(new Date(curTime));
            curTime += interval;
        }
        for (int i = 0; i < dates.size(); i++) {
            Date lDate = (Date) dates.get(i);
            String ds = formatter.format(lDate);

            formattedDates.add(ds);
            System.out.println(ds);
        }
        return formattedDates;

    }

}
公共类getCorrectDates{
公共静态void main(字符串[]args)引发异常{
列表日期=getCorrectDates.getDates(“2014年3月2日”、“2015年3月3日”);
系统输出打印项次(日期);
}
公共静态列表getDates(字符串dateStart、字符串dateEnd)引发异常{
列表日期=新建ArrayList();
List formattedDates=新建ArrayList();
数据格式格式化程序;
格式化程序=新的SimpleDataFormat(“MM/dd/yyyy”);
Date startDate=(日期)格式化程序.parse(日期开始);
Date endDate=(Date)格式化程序.parse(dateEnd);
长间隔=24*1000*60*60;//1小时(毫秒)
long endTime=endDate.getTime();//在此处创建结束时间,可能使用日历或日期
long curTime=startDate.getTime();

而(curTime以下内容就足够了:

new SimpleDateFormat("M/d/YYYY");
引自:

数字:对于格式化,模式字母的数量是最小位数,较短的数字将零填充到此数量。对于解析,除非需要分隔两个相邻字段,否则将忽略模式字母的数量


以下几点就足够了:

new SimpleDateFormat("M/d/YYYY");
引自:

数字:对于格式化,模式字母的数量是最小位数,较短的数字将零填充到此数量。对于解析,除非需要分隔两个相邻字段,否则将忽略模式字母的数量


@JuniorCompressor的答案是最好的选择,我的理解是,如果要做到这一点,您需要将给定的日期转换为所需的格式:

if(ds.startsWith("0")
   ds = ds.replaceFirst("0", "");

ds = ds.replaceAll("/0", "/");

@JuniorCompressor的答案是最好的选择,我的理解是,如果要做到这一点,您需要将给定的日期转换为所需的格式:

if(ds.startsWith("0")
   ds = ds.replaceFirst("0", "");

ds = ds.replaceAll("/0", "/");

使用一个格式化程序对其进行解析,然后使用另一个格式化程序对其进行格式化:

Date date = new SimpleDateFormat("MM/dd/yyyy").parse("02/02/1984");
String formatted = new SimpleDateFormat("M/d/yyyy").format(date);

格式化的
变量是
“2/2/1984”

用一个格式化程序对其进行解析,然后用另一个格式化程序对其进行格式化:

Date date = new SimpleDateFormat("MM/dd/yyyy").parse("02/02/1984");
String formatted = new SimpleDateFormat("M/d/yyyy").format(date);

格式化的
变量是
“2/2/1984”

文档建议使用
d
而不是
dd
;这样行吗?文档建议使用
d
而不是
dd
;这样行吗?