读书人

怎么得到一个日期的前一天日期,前一个

发布时间: 2012-02-24 16:30:38 作者: rapoo

如何得到一个日期的前一天日期,前一个月的日前,前一年的日期?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JFormattedTextField jTextDate = getTextField(dateJSpinner);
String strDate = jTextDate.getText();

System.out.println(strDate);
}
public JFormattedTextField getTextField(JSpinner spinner) {
JComponent editor = spinner.getEditor();
if (editor instanceof JSpinner.DefaultEditor) {
return ((JSpinner.DefaultEditor)editor).getTextField();
} else {
System.err.println("Unexpected editor type: "
+ spinner.getEditor().getClass()
+ " isn't a descendant of DefaultEditor");
return null;
}
}
//得到spinner的日期在jButton1ActionPerformed中,想得到这个日期(格式0000-00-00)的的前一天日期,前一个月的日前,前一年的日期?是按String 的运算能得到吗?还是别的?


[解决办法]
JODA time 你网上搜索一下吧.很好用的包
[解决办法]
获得一个Calendar实例,在利用add方法。

类似:
cal.add( GregorianCalendar.MONTH , -2 );
cal.add( GregorianCalendar.YEAR , 1 );

想减去多少天都可以。
[解决办法]
Calendar cal = Calendar.getInstance();
Calendar calClone = (Calendar) cal.clone();
calClone.setTime(new Date());
calClone.set(Calendar.DAY_OF_YEAR, calClone.get(Calendar.DAY_OF_YEAR) - 1);
System.out.println(calClone.getTime());

calClone = (Calendar) cal.clone();
calClone.setTime(new Date());
calClone.set(Calendar.MONTH, calClone.get(Calendar.MONTH) - 1);
System.out.println(calClone.getTime());

calClone = (Calendar) cal.clone();
calClone.setTime(new Date());
calClone.set(Calendar.YEAR, calClone.get(Calendar.YEAR) - 1);
System.out.println(calClone.getTime());
[解决办法]
好像写多了
Calendar cal = Calendar.getInstance();
Calendar calClone = (Calendar) cal.clone();
calClone.set(Calendar.DAY_OF_YEAR, calClone.get(Calendar.DAY_OF_YEAR) - 1);
System.out.println(calClone.getTime());

calClone = (Calendar) cal.clone();
calClone.set(Calendar.MONTH, calClone.get(Calendar.MONTH) - 1);
System.out.println(calClone.getTime());

calClone = (Calendar) cal.clone();
calClone.set(Calendar.YEAR, calClone.get(Calendar.YEAR) - 1);
System.out.println(calClone.getTime());

[解决办法]
cal.add( GregorianCalendar.MONTH , -2 );
cal.add( GregorianCalendar.YEAR , 1 );
[解决办法]
看看这个:
http://blog.csdn.net/dazhen520/archive/2007/05/29/1629914.aspx

http://blog.csdn.net/dazhen520/archive/2007/05/29/1629220.aspx
[解决办法]
一定要gregoriencalender,
juliancalendar 没有润日
Calendar calendar = new GregorianCalendar(pdt);
[解决办法]
搞日期用calendar

读书人网 >J2SE开发

热点推荐