Java 仅比较日期的某些部分
我想知道我是否有以下数组Java 仅比较日期的某些部分,java,Java,我想知道我是否有以下数组 A = [JAN-2014, FEB-2014, MARCH-2014] B = [1-JAN-2014, 13-FEB-2014, 29-MARCH-2014] C = [2014-Jan, 2014-Feb, 2014-March] 是否可以仅根据月份比较3个数组之间的日期,而不将其中一个数组的日期格式转换为其他格式?我建议使用 public static final SimpleDateFormat SDF_DATE=new SimpleDateFormat(“
A = [JAN-2014, FEB-2014, MARCH-2014]
B = [1-JAN-2014, 13-FEB-2014, 29-MARCH-2014]
C = [2014-Jan, 2014-Feb, 2014-March]
是否可以仅根据月份比较3个数组之间的日期,而不将其中一个数组的日期格式转换为其他格式?我建议使用
public static final SimpleDateFormat SDF_DATE=new SimpleDateFormat(“yyyy-MMM-dd”);
公共静态最终简化格式SDF_小时=新简化格式(“HH:mm:ss”);
公共字符串getDateAddedToString(){
return DateFormatters.SDF_DATE.format(dateAdded.getTime());
}
……然后
“example_string”.equals(getDateAddedToString())代码>
使用月份:
public static final SimpleDateFormat SDF\u MONTH=new SimpleDateFormat(“MMM”)
或者使用字符串类的子字符串
和正则表达式
问候
String aString = "JAN-2014";
SimpleDateFormat aDateFormat = new SimpleDateFormat("mmm-yyyy");
Date aDate = aDateFormat.parse(aString);
String bString = "13-FEB-2014";
SimpleDateFormat bDateFormat = new SimpleDateFormat("dd-mmm-yyyy");
Date bDate = bDateFormat.parse(bString);
String cString = "2014-feb";
SimpleDateFormat cDateFormat = new SimpleDateFormat("yyyy-mmm");
Date cDate = cDateFormat.parse(cString);
Calendar aCal = Calendar.getInstance();
aCal .setTime(aDate);
Calendar bCal = Calendar.getInstance();
bCal .setTime(bDate);
Calendar cCal = Calendar.getInstance();
cCal .setTime(cDate);
int aMonth = aCal.get(Calendar.MONTH);
int bMonth = bCal.get(Calendar.MONTH);
int cMonth = cCal.get(Calendar.MONTH);
然后您可以比较月份的整数值如果它们由Java日期对象表示,我相信它们会有一个您可以使用的月份整数字段。您真的应该将它们转换为正确的日期。字符串黑客可能会更快,但它们的可读性肯定更低,更容易出错。请解析日期并将其与java.util.Date
或java.util.Calendar
进行比较。很抱歉,我刚刚注意到,在同一数组中,月份格式“Feb”和“March”存在问题,我现在将对此进行研究