public Calendar getDateAfterXYearYMonthZDays(Calendar calendar) {
Calendar c=Calendar.getInstance();
c.add(Calendar.DATE, 3);
c.add(Calendar.YEAR, 2);
c.add(Calendar.MONTH,1);
return c;
}
我正在获得格里高利字符串,但我想要“2015年8月22日22:07:27 IST 2015”,并且也应该在上述方法中返回。
答案 0 :(得分:1)
问题尚不清楚,但就我所知,你有一个Calendar
而且你想要String
。首先更改方法签名以返回String
,然后从Date
获取Calendar
实例,并使用SimpleDateFormatter
格式化Date
。
此外,您永远不会使用方法参数calendar
。在将其作为参数传递之前进行初始化。
public String getDateAfterXYearYMonthZDays(Calendar calendar) {
calendar.add(Calendar.DATE, 3);
calendar.add(Calendar.YEAR, 2);
calendar.add(Calendar.MONTH,1);
SimpleDateFormat formatter=new SimpleDateFormat("E M d HH:mm:ss z d");
return formatter.format(c.getTime() );
}
答案 1 :(得分:0)
你应该使用JodaTime,因为它会为你节省很多麻烦。
http://www.joda.org/joda-time/
在JodaTime中,您可以执行以下操作,
DateTime dateTime = new DateTime();
String myDateTimeString = dateTime.toString("E M d HH:mm:ss z y");
// myDateTimeString's value - Weekday Month Day Time TimeZone Year
以下是显示其他格式类型的文档页面。
http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html
JodaTime还支持Gregorian日历系统,并提供了一些帮助方法,可以从Calendar转换为JodaTime。
答案 2 :(得分:0)
您可以使用以下代码获取日期:
public Date getDateAfterXYearYMonthZDays(String gregorianString) {
SimpleDateFormat formatter=new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date formattedDate = null;
try {
formattedDate = formatter.parse(gregorianString);
} catch (ParseException e) {
e.printStackTrace();
}
return formattedDate;
}