Java 将2015年3月3日转换为2015年3月3日的简单快捷方式
我需要将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
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
;这样行吗?