关于java中java.util.Date(急)

写一个类,其中包含一个方法,入参是一个日期字符串,返回值是入参对应日期的上一个月的最后一日,返回值类型是字符串,格式yyyy-MM-dd。... 写一个类,其中包含一个方法,入参是一个日期字符串,返回值是入参对应日期的上一个月的最后一日,返回值类型是字符串,格式yyyy-MM-dd。 展开
 我来答
q447552640
2014-07-15 · TA获得超过156个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:189万
展开全部

这里建议用Calendar来完成,因为Calendar可以对日期进行计算。

代码写的比较丑,你再调整调整,俺程序员做的不是很成功。

public static String getLastMonthDay(String data)

{

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//设定日期

ParsePosition pos = new ParsePosition(0);

Calendar calendar=Calendar.getInstance();

calendar.setTime(formatter.parse(data,pos));

calendar.add(Calendar.MONTH, -1);//月份减1

int maxday=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//得到当前月份的最大日期

calendar.set(Calendar.DAY_OF_MONTH, maxday);

return formatter.format(calendar.getTime());

}


public static void main(String[] args)

{

System.out.println(getLastMonthDay("2014-05-03"));

System.out.println(getLastMonthDay("2013-05-03"));

System.out.println(getLastMonthDay("2014-03-01"));

}

hhxlyl
2014-07-15 · TA获得超过392个赞
知道小有建树答主
回答量:380
采纳率:100%
帮助的人:435万
展开全部
public class DateUtils{
public static String lastMonthEnd(String date) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");//日期格式,建议修改为全局静态常量
Date d = null;
try {
d = df.parse(date);//得到时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);//设置Calendar时间为传入的时间
calendar.set(Calendar.DATE, 1);//设置Calendar的日期为这个月1号
calendar.add(Calendar.DATE, -1);//设置日期减去一天,即上个月最后一天
return df.format(calendar.getTime());//返回指定格式字符串
} catch (ParseException e) {

}
return null;
}

public static void main(String[] args) {
System.out.println(monthBeginA("2014-07-15"));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小童鞋_成er
2014-07-15 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
public class DateTest{
    public static void main(String[] args){
        String date = getDate(new java.util.Date());
        System.out.println("转换后:" + date);
    }
    private static String getDate(java.util.Date date){
        return new java.text.SimpleDateFormat("yyyy-MM-dd").format(date);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呼哈嘿吼呵Cf
2014-07-15 · TA获得超过210个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:207万
展开全部
把date转成calendar,求到对应时间后,再format返回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
andygulin
2014-07-15 · TA获得超过1678个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1118万
展开全部
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;

public class Test {
public static void main(String[] args) throws ParseException {
System.out.println("2014-01-02" + " -> " + getDate("2014-01-02"));
System.out.println("2014-02-02" + " -> " + getDate("2014-02-02"));
System.out.println("2014-03-02" + " -> " + getDate("2014-03-02"));
}

public static String getDate(String dateStr) throws ParseException {
Date date = DateUtils.parseDate(dateStr, new String[] { "yyyy-MM-dd" });
date = DateUtils.addMonths(date, -1);
Calendar cal = DateUtils.toCalendar(date);
int day = cal.getActualMaximum(Calendar.DATE);
return DateFormatUtils.format(cal, "yyyy-MM-" + day);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式