问题描述
因为java通过时间类得到的是从1970 年 1 月 1 日的 00:00:00.000到现在的毫秒数,转换的时间有偏移!请问如何有更好,更简单的方法得到现在的年月日,要求得到的日期如:年为2008,月为06 ,日为29!
解决方案
可以使用Calendar类来进行获取。//得到Calendar类的实例。Calendar now= Calendar.getInstance();//输出年System.out.println("YEAR: " + calendar.get(Calendar.YEAR));//输出月System.out.println("MONTH: " + calendar.get(Calendar.MONTH));//输出日System.out.println("DAY_OF_MONTH: " + now.get(Calendar.DAY_OF_MONTH));当然,也可以用date类进行获取://创建日期类Date dateNow=new Date();SimpleDateFormat dateFormat=new SimpleDateFormat ("yyyy 年 MM 月dd 日 HH 时 mm 分 ss 秒");String dateNowStr=dateFormat.format(dateNow);
解决方案二:
楼主要的是不是得到当天的0时0分0秒啊。呵呵Date date =new Date(System.currentTimeMillis()/86400000*86400000-(23-Calendar.ZONE_OFFSET)*3600000);System.out.println(date);上面这段代码让你只用一句语句就得到当天的0时0分0秒000毫秒。好玩吧。呵呵
解决方案三:
public class A {public static void main(String[] args) {Date date = new Date();SimpleDateFormat dateFm = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");System.out.println(dateFm.format(date));}}// 输出为 星期日-六月-29-2008
解决方案四:
不需要SimpleDateFormat myFormat=new SimpleDateFormat("yyyy年MM月dd日");myFormat.format(new Date());另外Calendar类也有很多处理日期的方法,现在很少直接使用Date类来处理时间