Java怎么做时间转化,比如说前天、昨天、上月-->生成具体时间

比如今天是2015-10-15
我输入文本前天-->得到2015-10-13
输入去年-->得到2014-01-01 2014-12-31
输入上周-->得到2015-10-12 2015-10-16
大致就是这样的需求

使用Calendar的add方法

如昨天
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1);
System.out.println(sdf.format(cal.getTime()));

肯定是获取当前时间,然后自己计算啊

首先获取当前时间和时区,然后识别你输入文字,通过if语句判定你输入的文字,进行当前时间和时区的加减法就可以了.
long time = System.currentTimeMillis(); 当前时间毫秒数;
private void calculateTime(String input){
if(input.equals("去年")){
当前系统毫秒数减去一年的毫秒数,然后用时间的format格式,把毫秒数转换成具体的年月日就可以了。下面的条件同理。
}else if(input.equals("上周")){
}else if..

}

先判断输入的文本,然后根据文本利用Calendar和SimpleDateFormat计算并格式化对应的时间

1.8之前的可以用Calendar类,里面主要的方法就是add方法了,可以根据你的需要进行时间的增加和减少(传入负值),1.8中增加了新的日期时间API,可以参考http://www.importnew.com/16814.html

输入辨别 出文本的语义,然后就是用Calendar和SimpleDateFormat来进行具体的编程了