我正在使用Apache POI在Java中读取Excel文件。
有些日期格式化的列,格式为MM / DD / YYYY
当我在印度阅读该文件时,它会正确读取日期。
e.g。 2015年7月4日阅读时间为2015年4月7日 例如2014年11月30日阅读时间为2015年11月30日
这很好。
但是,当在美国运行相同的代码时,它表现得很奇怪。
e.g。 2015年7月4日阅读时间为2015年7月4日 例如2014年11月30日未能说30月无效。
当我在美国和印度的MS Excel中打开excel文件时,它们的可见性是相同的。即在excel中显示为MM / DD / YYYY。但是通过代码在美国读错了。
我的代码很简单:
if (DateUtil.isCellDateFormatted(cell))
data.append(cell);
根据地点,POI完成了一些事情。有人可以建议如何处理这种情况。
答案 0 :(得分:0)
试试这个(cell1.getDateCellValue()
正常工作):
//get your cell value
Cell cell1 = sheet.getRow(0).getCell(0);
System.out.println(cell1.getDateCellValue());
OR
尝试使用SimpleDateFormat类:
//using Apache POI get the date
SimpleDateFormat sdf = new SimpleDateFormat("MM/DD/YYYY");
Date date = sdf.parse("your date");
String formattedDate=sdf.format(date);
System.out.println(formattedDate);
另一种获取时区的方法:
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = isoFormat.parse("2010-05-23T09:01:02");
希望这有帮助!