如何从格里高利字符串中获取日期?

时间:2015-08-08 06:56:30

标签: java date calendar gregorian-calendar

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”,并且也应该在上述方法中返回。

3 个答案:

答案 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;
    }