一个有关日期的问题 在java中怎样得到昨天的日期值呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为 Date 的 getDay 等方法都已经不推荐使用了,所以在日期需要计算的时候通常会选用 java.util.Calendar。 下面是一个取某个日期前一天的例子,用到了 java.text.SimpleDateFormat,仅仅是为了控制输出格式,对日期计算没有实际意义。 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); // 当时的日期和时间 System.out.println(df.format(c.getTime())); int d = c.get(Calendar.DAY_OF_MONTH); // 取出“日”数 --d; // 将“日”减一,即得到前一天 c.set(Calendar.DAY_OF_MONTH, d); // 将“日”数设置回去 System.out.println(df.format(c.getTime())); c.set(Calendar.DAY_OF_MONTH, 0); // 如果当前日期是1日的情况会怎么样? // 这里演示了这种情况(这里情况下1-1=0所以直接赋0值了) System.out.println(df.format(c.getTime())); // 这里打印了上个月的最后一天,嘿嘿,满意吧。 搜索到的 Date date=new Date() ;//当前时间date.setTime(date.getTime()-24*60*60*1000);然后把date根据你需要的格式再转换就可以了推荐用format函数,下面这个是我长用的,根据Date对象得到你要的格式的日期,下面的函数得到的格式是类似2006-12-14 18:07:36,具体你想要什么自己再改了 public static String getTime(Date date) { String nowtime = null; SimpleDateFormat sdf = new SimpleDateFormat("", Locale.SIMPLIFIED_CHINESE); sdf.applyPattern("yyyy-MM-dd HH:mm:ss"); nowtime = sdf.format(date); return nowtime; }现在时间都是表示 1970 年 1 月 1 日 00:00:00 GMT 以后的毫秒数就是一个long的数字,所以只要减去一天24小时就可以得到前一天虽然也有直接可以getDay() getMonth() 等等函数,但都已经过时不推荐用了, calendar类有一个方法可以计算前n天时什么日期的方法。 数据结构 在dos 下编译带包的程序出错, String 的引用、地址问题 关于算法问题,请大家帮忙看一下,很急!! J关于AVA输入流的问题 请求高手帮助,特别着急!!!!!!!!!!!!!!!!!!!! 一个查询语句 高分提问:如何将一个resultset对象转化为一个方便使用的结果,比如数组或者其他更易于操作的对象? 4 | 7的结果是什么?为什么?4 & 7呢? java spring 定时器运行失效的问题 javascript中如何捕捉到Applet中的事件? SWT的多线程问题
下面是一个取某个日期前一天的例子,用到了 java.text.SimpleDateFormat,仅仅是为了控制输出格式,对日期计算没有实际意义。
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance(); // 当时的日期和时间
System.out.println(df.format(c.getTime()));
int d = c.get(Calendar.DAY_OF_MONTH); // 取出“日”数
--d; // 将“日”减一,即得到前一天
c.set(Calendar.DAY_OF_MONTH, d); // 将“日”数设置回去
System.out.println(df.format(c.getTime()));
c.set(Calendar.DAY_OF_MONTH, 0); // 如果当前日期是1日的情况会怎么样?
// 这里演示了这种情况(这里情况下1-1=0所以直接赋0值了)
System.out.println(df.format(c.getTime())); // 这里打印了上个月的最后一天,嘿嘿,满意吧。 搜索到的
//当前时间
date.setTime(date.getTime()-24*60*60*1000);
然后把date根据你需要的格式再转换就可以了
推荐用format函数,下面这个是我长用的,根据Date对象得到你要的格式的日期,
下面的函数得到的格式是类似2006-12-14 18:07:36,具体你想要什么自己再改了
public static String getTime(Date date) {
String nowtime = null;
SimpleDateFormat sdf = new SimpleDateFormat("",
Locale.SIMPLIFIED_CHINESE);
sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
nowtime = sdf.format(date);
return nowtime;
}现在时间都是表示 1970 年 1 月 1 日 00:00:00 GMT 以后的毫秒数
就是一个long的数字,所以只要减去一天24小时就可以得到前一天
虽然也有直接可以getDay() getMonth() 等等函数,但都已经过时不推荐用了,