A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.* ;       
class DateTime{                // 以后直接通过此类就可以取得日期时间
        private Calendar calendar = null ;                // 声明一个Calendar对象,取得时间
        public DateTime(){                                                // 构造方法中直接实例化对象
                this.calendar = new GregorianCalendar() ;       
        }
        public String getDate(){                // 得到的是一个日期:格式为:yyyy-MM-dd HH:mm:ss.SSS
                // 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
                StringBuffer buf = new StringBuffer() ;
                buf.append(calendar.get(Calendar.YEAR)).append("-") ;        // 增加年
                buf.append(calendar.get(Calendar.MONTH)+1).append("-") ;        // 增加月
                buf.append(calendar.get(Calendar.DAY_OF_MONTH)).append(" ") ;        // 取得日
                buf.append(calendar.get(Calendar.HOUR_OF_DAY)).append(":") ;        // 取得时
                buf.append(calendar.get(Calendar.MINUTE)).append(":") ;
                buf.append(calendar.get(Calendar.SECOND)).append(".");
                buf.append(calendar.get(Calendar.MILLISECOND)) ;
                return buf.toString() ;
        }
        public String getDateComplete(){                // 得到的是一个日期:格式为:yyyy年MM月dd日 HH时mm分ss秒SSS毫秒
                // 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
                StringBuffer buf = new StringBuffer() ;
                buf.append(calendar.get(Calendar.YEAR)).append("年") ;        // 增加年
                buf.append(calendar.get(Calendar.MONTH)+1).append("月") ;        // 增加月
                buf.append(calendar.get(Calendar.DAY_OF_MONTH)).append("日") ;        // 取得日
                buf.append(calendar.get(Calendar.HOUR_OF_DAY)).append("时") ;        // 取得时
                buf.append(calendar.get(Calendar.MINUTE)).append("分") ;                // 取得分
                buf.append(calendar.get(Calendar.SECOND)).append("秒") ;                // 取得秒
                buf.append(calendar.get(Calendar.MILLISECOND)).append("毫秒") ;         // 取得毫秒
                return buf.toString() ;
        }
        public String getTimeStamp(){                // 得到的是一个时间戳
                // 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能
                StringBuffer buf = new StringBuffer() ;
                buf.append(calendar.get(Calendar.YEAR)) ;        // 增加年
                buf.append(calendar.get(Calendar.MONTH)+1) ;        // 增加月
                buf.append(calendar.get(Calendar.DAY_OF_MONTH)) ;        // 取得日
                buf.append(calendar.get(Calendar.HOUR_OF_DAY)) ;        // 取得时
                buf.append(calendar.get(Calendar.MINUTE)) ;                // 取得分
                buf.append(calendar.get(Calendar.SECOND));                // 取得秒
                buf.append(calendar.get(Calendar.MILLISECOND)) ;         // 取得毫秒
                return buf.toString() ;
        }
       
};
public class GetTime{
        public static void main(String args[]){
                DateTime dt = new DateTime() ;
                System.out.println("系统日期:"+dt.getDate()) ;
                System.out.println("中文日期:"+dt.getDateComplete()) ;
                System.out.println("时间戳:"+dt.getTimeStamp()) ;
        }
};

想必大家都看见运行结果了,我想要达到的取得完整的日期的愿望是实现了,但是不符合我们生活中的日期格式啊,比如说我们日常的日期为:2012-04-08   但是我的程序出来的结果是:2012-4-8
问题是怎么让我的程序实现前面的那种效果呢?谢谢

6 个回复

倒序浏览
增加一个补零的方法即可:
// 传入要补零的 时间的字符串,和 需要的 位数, 比如要达到04-08 ,n的传入值就是2
public String addZero(String date,int n){
      StringBuffer sb=new StringBuffer();
      sb.append(date)
      while(date.length<n){
            sb.insert(0,"0");
     }
     return sb.toString();
}

这样就行了
回复 使用道具 举报
恩,我试了下,能出来结果了,谢谢啊
回复 使用道具 举报
String类的format()方法可以用来格式化。具体看api
回复 使用道具 举报
楼主,你的那种方法没错,我想你看看我的方法是不是更简单,想要什么格式随便你定义C:\Documents and Settings\zjw\桌面\黑马论坛\日期格式定义.jpg
回复 使用道具 举报
我截的代码图没传上去,直接代码吧,
public static void main(String[] args) {
        Date date=new Date();
        SimpleDateFormat sdf_1=new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf_2=new SimpleDateFormat("yyyy年MM月dd日");
        System.out.println("日期格式一:"+sdf_1.format(date));
        System.out.println("日期格式二:"+sdf_2.format(date));
}
回复 使用道具 举报
pray 高级黑马 2014-4-26 05:10:23
7#
看完这个帖子以后,我的心久久不能平静,震撼啊!为什么会有如此好的帖子!我纵横网络bbs多年,自以为再也不会有任何帖子能打动我,没想到今天看到了如此精妙绝伦的这样一篇帖子。楼主,是你让我深深地理解了【人外有人,天外有天】这句话。谢谢侬!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马