/
XingDate.java
64 lines (52 loc) · 1.78 KB
/
XingDate.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package org.springframework.social.xing.api;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class XingDate implements Serializable {
private static final String DEFAULT_DATE_FORMAT = "yyyy-MM";
private static final String FALLBACK_DATE_FORMAT = "yyyy";
private static final Log logger = LogFactory.getLog(XingDate.class);
private static final long serialVersionUID = 6747607636067970948L;
private Integer year;
private Integer month;
public XingDate(String dateString) {
if (dateString != null && !"".equals(dateString.trim())) {
if (DEFAULT_DATE_FORMAT.length() == dateString.length()) {
try {
SimpleDateFormat format = new SimpleDateFormat(
DEFAULT_DATE_FORMAT);
Calendar cal = Calendar.getInstance();
Date date = format.parse(dateString);
cal.setTime(date);
month = cal.get(Calendar.MONTH) + 1; // MONTH is zero based
year = cal.get(Calendar.YEAR);
} catch (ParseException e) {
logger.fatal("failed to parse date string " + dateString, e);
}
} else if (FALLBACK_DATE_FORMAT.length() == dateString.length()) {
try {
SimpleDateFormat fallbackFormat = new SimpleDateFormat(
FALLBACK_DATE_FORMAT);
Calendar cal = Calendar.getInstance();
Date date = fallbackFormat.parse(dateString);
cal.setTime(date);
year = cal.get(Calendar.YEAR);
} catch (ParseException e) {
logger.fatal("failed to parse date string " + dateString, e);
}
} else {
logger.fatal("unknown date format: " + dateString);
}
}
}
public Integer getMonth() {
return month;
}
public Integer getYear() {
return year;
}
}