我通过从我检索的当前日期扣除-5分钟来转换特定日期时间格式:
csvFileDate是一个带格式的日期列表yyyyMMddhhmm.下面是我正在使用的代码,但它将日期转换为错误:
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmm");
private List<String> csvFileDates = new ArrayList<String>();
....
Collections.sort(csvFileDates);
String currDate = csvFileDates.get(csvFileDates.size() -1);
System.out.println("DATE1 " + currDate);
Calendar c = Calendar.getInstance();
c.setTime(dateFormat.parse(currDate));
c.add(Calendar.MINUTE, -5);
System.out.println("DATE2 " + c.getTime());
Run Code Online (Sandbox Code Playgroud)
输出:
DATE1 201505181208
DATE2 Mon May 18 00:03:00 SGT 2015
Run Code Online (Sandbox Code Playgroud)
另一个:
DATE1 201505181213
DATE2 Mon May 18 00:08:00 SGT 2015
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
你有24小时的时间格式.所以你必须使用大写字母H几个小时:
H小时(0-23)
h小时(上午/下午)(1-12)
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅SimpleDateFormat的文档.