Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅比较日期的某些部分_Java - Fatal编程技术网

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”存在问题,我现在将对此进行研究