我有5个文件。
1.ICAREP_ANI_SVCPROF_20120614_001.DAT
2.ICAREP_ANI_SVCPROF_20120617_001.DAT
3.ICAREP_ANI_SVCPROF_20120619_001.DAT
4.ICAREP_ANI_SVCPROF_20120615_001.DAT
5.ICAREP_ANI_SVCPROF_20120616_001.DAT我想从文件名中获取日期(例如“20120614”),并比较每个日期,以找出使用java编程的最新日期。
有人能在这方面帮我吗?
编辑!下面是我的代码:
String[] children = dir.list();
String test = "";
for (i=0; i<children.length; i++) {
test = children[i].compareTo(children[i+1]);
}发布于 2012-12-28 14:54:20
下面是您可以使用的简单逻辑,
String filepath = "ICAREP_ANI_SVCPROF_20120614_001.DAT";
String [] tempPath = filepath.split("_");
System.out.println(""+tempPath[3]); //output = 20120614
SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd");
try
{
Date date1 = ft.parse(tempPath[3]); //covert the string into date
}
catch(ParseException ex)
{
System.out.println(""+ex);
}
//compare the date logic从下面的代码中,您可以使用split ("_")获得文件的日期,因此文件名的长度无关紧要,
之后,您可以使用带有"yyMMdd“模式的SimpleDateFormat解析该字符串。
然后使用ft.parse(string)来生成Date对象。
发布于 2012-12-28 14:51:33
int numbDate = Integer.parseInt((String) str.subSequence(19, 27))其中str是您的文件名。
发布于 2012-12-28 15:02:42
如果你的文件名看起来总是一样的,你不需要提取日期,你可以简单地使用字符串比较文件名:
file1.getName().compareTo(file2.getName())这样你就可以找到最新的版本。
https://stackoverflow.com/questions/14065633
复制相似问题