我的代码如下:
String tempStr = "";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dtNow = new Date();
System.out.println("现在时刻:" + df.format(dtNow));
long dlong = dtNow.getTime() - 1000 * 60 * 60 * 24 * 3;
dtNow.setTime(dlong);
tempStr = df.format(dtNow);
System.out.println("之后时刻:" +tempStr);
以上是计算3天之前的时刻;
执行结果如下:
现在时刻:2013-01-22 18:18:08
之后时刻:2013-01-19 18:18:08是正确的!
如果改成30天之前的时刻;
执行结果如下:
现在时刻:2013-01-22 18:20:07
之后时刻:2013-02-11 11:22:54是错误的,请问为什么呢?如何计算正确?
String tempStr = "";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dtNow = new Date();
System.out.println("现在时刻:" + df.format(dtNow));
long dlong = dtNow.getTime() - 1000 * 60 * 60 * 24 * 3;
dtNow.setTime(dlong);
tempStr = df.format(dtNow);
System.out.println("之后时刻:" +tempStr);
以上是计算3天之前的时刻;
执行结果如下:
现在时刻:2013-01-22 18:18:08
之后时刻:2013-01-19 18:18:08是正确的!
如果改成30天之前的时刻;
执行结果如下:
现在时刻:2013-01-22 18:20:07
之后时刻:2013-02-11 11:22:54是错误的,请问为什么呢?如何计算正确?
解决方案 »
- 关于对数据操作的工具类的问题
- Tomcat6.0 + jdk1.6
- 标题:谁要JSP实现的网上书店系统
- java获取weblogic8中的连接报错
- jdbc事务问题 数据库sqlserver
- 所有的异常都继承自Throw able,它的两个分支是什么?
- 学习并散分:请介绍一下目前java绑定方面的资源(xml及数据库绑定等,如castor,jaxb等)
- struts问题
- 在struts中如何设计业务层和持久层呢
- 初级问题:在cmd中输入j2ee -verbose,提示j2ee不是内部或外部命令,但输入deploytool 能打开j2ee deploytool窗口
- web server 应用 [ java 小应用]
- jbpm4.4 问题 求教
日期类型用DateUtils,字符串用StringUtils
System.out.println(Integer.MAX_VALUE);
System.out.println(1000 * 60 * 60 * 24 * 30);这样也许就明白了吧.
已经超过了int的最大值了.所以时间超过30天就不准确了.改为
long dlong = dtNow.getTime() - 1000 * 60 * 60 * 24 * 30L;