开发中经常需要取得日期,而且每次取得日期的时候代码都会重复,所以既然是重复的代码就可以将其定义成一个类,以方便重复调用,但是在操作的时候有一点特别需要注意:如果月会是9月,则应该显示09,但是如果是09的话,则数字肯定会忽略到0。
1.Calendar 类操作 (取得日期时间、中文的日期时间、时间戳)
除了取出日期之外,取得时间戳也是一种比较常见的操作,例如:以下日期:2009-01-16 11:25:34.953
时间戳:20090116112534953
import java.util.* ; // 导入需要的工具包 class DateTime{ // 以后直接通过此类就可以取得日期时间 private Calendar calendar = null ;// 声明一个Calendar对象,取得时间 public DateTime(){ // 构造方法中直接实例化对象 this.calendar = new GregorianCalendar() ; } // 得到的是一个日期:格式为:yyyy-MM-dd HH:mm:ss.SSS public String getDate(){ // 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能 StringBuffer buf = new StringBuffer() ; buf.append(calendar.get(Calendar.YEAR)).append("-") ;// 增加年 buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)).append("-") ;// 增加月 buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)).append(" ") ;// 取得日 buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)).append(":") ;// 取得时 buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)).append(":") ; buf.append(this.addZero(calendar.get(Calendar.SECOND),2)).append(".") ; buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)) ; 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(this.addZero(calendar.get(Calendar.MONTH)+1,2)).append("月") ;// 增加月 buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)).append("日") ;// 取得日 buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)).append("时") ;// 取得时 buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)).append("分") ; // 取得分 buf.append(this.addZero(calendar.get(Calendar.SECOND),2)).append("秒") ; // 取得秒 buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)).append("毫秒") ; // 取得毫秒 return buf.toString() ; } public String getTimeStamp(){ // 得到的是一个时间戳 // 考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能 StringBuffer buf = new StringBuffer() ; buf.append(calendar.get(Calendar.YEAR)) ; // 增加年 buf.append(this.addZero(calendar.get(Calendar.MONTH)+1,2)) ; // 增加月 buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH),2)) ; // 取得日 buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY),2)) ; // 取得时 buf.append(this.addZero(calendar.get(Calendar.MINUTE),2)) ; // 取得分 buf.append(this.addZero(calendar.get(Calendar.SECOND),2)); // 取得秒 buf.append(this.addZero(calendar.get(Calendar.MILLISECOND),3)) ; // 取得毫秒 return buf.toString() ; } // 考虑到日期中存在前导0,所以在此处加上补零的方法 private String addZero(int num,int len){ StringBuffer s = new StringBuffer() ; s.append(num) ; while(s.length()<len){ // 如果长度不足,则继续补0 s.insert(0,"0") ; // 在第一个位置处补0 } return s.toString() ; } } public class DateDemo{ 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()) ; } }
输出结果:
系统日期:2013-03-11 17:23:43.174 中文日期:2013年03月11日17时23分43秒174毫秒 时间戳:20130311172343174
2.基于SimpleDateFormat类操作
java.util.Date 已经就是一个完整的日期了,SimpleDateFormat 类中存在一个方法,可以针对于Date重新格式化,那么如果现在将一个表示当前日期的 date 对象通过 SimpleDateFormat 类指定好的模板进行相关的格式化操作的话,那么取得时间就非常的方便了。
相关推荐
Date() 按照当前系统时间构造一个Date对象。 Date(long date) 按照给定的时间毫秒值构造一个 Date 对象。 表1 java.util.Date类的构造方法 主要的方法有: 返回 异常 说明 boolean after(Date when) 测试当前对象...
* 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ ...
* 获取DateHelper实例, 使用当前时间作为基准时间 * * @return Date */ public static DateUtils getInstance() { return new DateUtils(null); } /** * 获取年的第一天 * * @param offset ...
CoreEditText : iOS开发工具类,包含常用功能,为方便使用,特为常用功能封装并且使用宏定义方式运用。在做开发时候能用少点代码就用少点,封装...获取当前时间 返回字符串的尺寸 计算两个日期之间相差分钟数 获取磁
Excel集成工具箱6.0是利用VBA(Visual Basic for Applications)语言编写的增强应用型插件。...【系统功能信息】 系统功能调用及相关信息,关闭电脑、重启电脑、电脑使用时间、磁盘剩余空间。 【查看...
enhanceThread.java 一个自己定义的增强型线程类 ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的类 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
0186 获得系统当前日期 122 0187 将日期时间格式化为指定格式 122 0188 计算两个日期之间相差的天数 123 0189 根据指定日期返回星期几 123 0190 将日期转换为字符串 124 0191 判断日期是否改变 124 0192...
隐藏选项卡,这个插件还模拟了一个Excel2003样式的菜单,目的就是方便那些从Excel2003转向使用2007或2010版的朋友使用。 ===================================================================================...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表...,共包含562个C#编程中常用的属性、方法、类和各种技术...
0186 获得系统当前日期 122 0187 将日期时间格式化为指定格式 122 0188 计算两个日期之间相差的天数 123 0189 根据指定日期返回星期几 123 0190 将日期转换为字符串 124 0191 判断日期是否改变 124 0192...
主线程中的PostThreadMessage()返回TRUE,程序由Visual C++ 6.0开发,没有用到MFC(79KB)<END><br>23,pstat.zip 在程序需要进行较长时间工作的时候,总希望能有一个进度条告诉我们当前的进度,这个例子利用线程...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB...