【发布时间】:2020-06-07 05:00:38
【问题描述】:
我周日的挑战是获取特定年份的工作日并将其保存到 CSV 等文件中。
我有以下代码,我面临的问题是:如何以特定格式打印日期,即 YYYYMMDD,因为代码当前打印的是 Sat Jan 19 00:00:00 CET 2019。
另外,如果我可以排除周末,通常是否有更好的方法可以在 Java 8 中编写更短的代码。
import java.io.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class DatesInYear
{
public static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
public static void main (String[] args) throws java.lang.Exception
{
Date dt = new Date();
System.out.println(dt);
List<Date> dates = printDates("20190101","20191231");
Collections.reverse(dates);
System.out.println(dates.size());
for(Date date:dates)
{
SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
System.out.println(format1.format(date));
}
}
public static List<Date> printDates(String fromDate, String toDate)
{
ArrayList<Date> dates = new ArrayList<Date>();
try {
Calendar fromCal = Calendar.getInstance();
fromCal.setTime(dateFormat .parse(fromDate));
Calendar toCal = Calendar.getInstance();
toCal.setTime(dateFormat .parse(toDate));
while(!fromCal.after(toCal))
{
dates.add(fromCal.getTime());
fromCal.add(Calendar.DATE, 1);
}
} catch (Exception e) {
System.out.println(e);
}
return dates;
}
}
【问题讨论】:
-
不要只使用
System.out.println(date),使用您已经创建的dateFormat以您需要的方式对其进行格式化。 -
String date1 = format1.format(date);然后你对date1什么都不做。但你在正确的轨道上。 -
Calendar也可用于检查星期几。 -
你的 Java 版本是多少? 8 岁还是 9 岁以上?
-
我使用的是 Java 8