Calendar类理解 java中calendar类
Calendar类是采用手工的方式取得--日期,可以通过此类精确到毫秒,此类的定义如下:
public abstract class Calendar extends Object
implements Serializable, Cloneable, Comparable
这个类本身是一个抽象类,抽象类要想实例化肯定使用子类:GregorianCalendar
package org.lxh.api.datedemo;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarDemo {
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + (calendar.get(Calendar.MONTH) +1));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out
.println("HOUR_OF_DAY: " +calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " +calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " +calendar.get(Calendar.SECOND));
System.out
.println("MILLISECOND: " +calendar.get(Calendar.MILLISECOND));
}
}
但是现在有一个问题,如果每次取时间都按照这种方式取的话,那么得累死,那么能不能设计一个类,可以通过此
类直接取得时间呢,例如:现在给出了如下的一个接口:
package org.lxh.api.datedemo;
public interface DateTime {
public String getDate() ;
public String getDateTime() ;
public String getTimeStamp() ;
}
前面需要补0的问题需要注意,例如:01。
package org.lxh.api.datedemo;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateTimeImpl implements DateTime {
private Calendar calendar;
public DateTimeImpl() {
this.calendar = new GregorianCalendar();
}
public String getDate() {
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.DATE), 2));
return buf.toString();
}
public String getDateTime() {
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.DATE), 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();
}
@Override
public String getTimeStamp() {
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.DATE), 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();
}
private String addZero(int num, int len) {
StringBuffer buf = new StringBuffer();
buf.append(num);
while (buf.length() < len) {
buf.insert(0, 0);
}
return buf.toString();
}
}赞同0|评论
更多阅读
对MATLAB中meshgrid的理解 matlab中meshgrid
备注: 这些内容是我在阅读了meshgrid源代码及看了http://zhidao.baidu.com/question/169889793.html?an=0&si=1这个帖子之后的总结。函数功能:生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时,往往需要一些采样点,然后根
线程中的悲观锁和乐观锁 java中乐观锁和悲观锁
线程中的锁可以分为乐观锁和悲观锁,这两个都是实现锁机制的两种办法。悲观锁:根据字面意思,悲观,就是不是太好的。当一个线程访问这个数据的时候,悲观锁会把这个数据给锁住,不被其他线程所访问,直到这个线程完成了对数据的提交后,其他线程
正确理解会计中的“借贷记账法” 借贷记账法怎么理解
要义:用资金运动的“来龙去脉”或者说现金流量方向来理解“借贷记账法”中的“借”与“贷” 资产、成本费用的增加,导致现金的流出,记入借方,反之记入贷方;负债、所有者权益和收入的增加,导致现金的流入,记入贷方,反之记入借方。(注:
多态的概念和作用 java中多态的概念
多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物,与不同
c中的移位运算 java中的移位运算
C++位运算,看高手都是运用的灵活自如,打算从今天开始学习他!收藏每次看到位运算的地方,都比较迷糊.以前学习C的时候也不求甚解,到现在看来,觉得位运算和指针在C++基本知识里是最难理解,最难融会贯通的东西.尤其是位运算,用好了可以"