我正在编写一个应用程序,我让一些线程用随机数和随机日期写csv文件。但是,有些日期输出为######,但是当我在Excell中单击它们时,它们确实显示了正确的日期(例如,11月4日在Excell中显示为######,但是当我单击此单元格,在fx字段中显示为11/4/2014)。
以下是我写日期的方式:
Random random = new Random();
BufferedWriter bufferedWriter;
GregorianCalendar cal = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
writeLine(random, bufferedWriter, cal, df);
private void writeLine(Random random, BufferedWriter bufferedWriter, GregorianCalendar cal, DateFormat df) throws IOException {
String randomDateString;
bufferedWriter.write(Double.toString(random.nextDouble() * 100));
bufferedWriter.write(",");
randomDateString = createRandomDate(random, cal, df);
bufferedWriter.write(randomDateString);
bufferedWriter.newLine();
}
private String createRandomDate(Random random, GregorianCalendar cal, DateFormat df) {
int randomDayOfTheYear;
Date randomDate;
String randomDateString;
randomDayOfTheYear = random.nextInt(365) + 1;
cal.set(Calendar.YEAR, 2014);
cal.set(Calendar.DAY_OF_YEAR, randomDayOfTheYear);
randomDate = cal.getTime();
randomDateString = df.format(randomDate);
return randomDateString;
}
答案 0 :(得分:2)
######
是Excel用于标记不够宽的单元格以显示其中的整个数字的文本。这只发生在数字上。您正在正确编写CSV文件。您所要做的就是在Excel中展开列,以便显示整个日期。