java 日期(Date DateFormat Calendar)
来源:互联网 发布:金融数据终端 编辑:程序博客网 时间:2024/06/11 21:14
我们还是通过例子来说明:
public static void main(String[] args)
{
Date date=new Date();
System.out.println(date);
}
result:Tue Aug 26 14:40:07 CST 2008
这个结果让人不是很明白吧
下面我们要format一下
public static void main(String[] args)
{
Date date=new Date();
DateFormat df=DateFormat.getDateInstance();
String s=df.format(date);
System.out.println(s);
System.out.println(date);
}
result:
2008-8-26
Tue Aug 26 14:45:32 CST 2008
是不是发现少了什么? 对,具体的时间没有了
看看这个吧
public static void main(String[] args)
{
Date date=new Date();
DateFormat df=DateFormat.getDateInstance();
DateFormat df0=DateFormat.getDateTimeInstance();//使用getDateTimeInstance生成format实例,这样就可以把datetime显示出来了
String s=df.format(date);
String s0=df0.format(date);
System.out.println(s);
System.out.println(s0);
System.out.println(date);
}
result:
2008-8-26
2008-8-26 14:47:15
Tue Aug 26 14:47:15 CST 2008
×××××××××××××××××××××××××××××××××××××××××××××××
现在我们来看下面的一个例子,主要是对getDateInstance的具体学习:
public static void main(String[] args)
{
Date date=new Date();
/*
通过改变getDateInstance中的参数,我们可以得到对应的format格式,默认的情况下使用DateFormat.MEDIUM
*/
DateFormat df=DateFormat.getDateInstance();
DateFormat df_s=DateFormat.getDateInstance(DateFormat.SHORT);
DateFormat df_m=DateFormat.getDateInstance(DateFormat.MEDIUM);
DateFormat df_l=DateFormat.getDateInstance(DateFormat.LONG);
DateFormat df_f=DateFormat.getDateInstance(DateFormat.FULL);
String s=df.format(date);
String s_s=df_s.format(date);
String s_m=df_m.format(date);
String s_l=df_l.format(date);
String s_f=df_f.format(date);
System.out.println(s);
System.out.println(s_s);
System.out.println(s_m);
System.out.println(s_l);
System.out.println(s_f);
}
result:
2008-8-26
08-8-26
2008-8-26
2008年8月26日
2008年8月26日 星期二
这里要提一下,应为我们在中国,使用的是中文操作系统。所以format date以后我们自然得到的是中文。这个国际化Java已经帮我们做好了
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
下面在看看Calendar,Calendar是个抽象类,他又一个子类GregorianCalendar,这个子类比较有用。
现在我们来写第一个程序关于Calendar:
public static void main(String[] args)
{
GregorianCalendar gregorianCalendar=new GregorianCalendar();
System.out.println(gregorianCalendar);
}
result:
java.util.GregorianCalendar[time=1219734873687,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2008,MONTH=7,WEEK_OF_YEAR=35,WEEK_OF_MONTH=5,DAY_OF_MONTH=26,DAY_OF_YEAR=239,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=14,SECOND=33,MILLISECOND=687,ZONE_OFFSET=28800000,DST_OFFSET=0]
看到这个结果,我们开始使用的Date有很大差别吧
看看下面的例子:
public static void main(String[] args)
{
GregorianCalendar gregorianCalendar=new GregorianCalendar();
Date dt=gregorianCalendar0.getTime();//将它转化成date,这样我们就可以用上面学习的方法来处理了
System.out.println(dt);
}
result:
Tue Aug 26 15:26:45 CST 2008
这里有必要对GregorianCalendar的构造函数说明一下:
public static void main(String[] args)
{
GregorianCalendar gregorianCalendar=new GregorianCalendar(1999,16,788);//注意这里的天数
Date dt=gregorianCalendar.getTime();
DateFormat df=DateFormat.getDateInstance();
String s=df.format(dt);
System.out.println(s);
}
result:
2002-6-27
这里说明了GregorianCalendar的构造函数会对日期进行累加的,他的方法中add 和set也有同样的特性。一年的第一个月表示为0,二月表示为1.。。
这里您可能存在一些疑问,为什么要用到Calendar呢?Date不是很好吗?使用Calendar到后面还要转化成Date,是不是有点多此一举?其实不然,只要看过date api都会发现,date里面有很多方法都过时了的,取而代之的是Calendar里面的方法,因为Calendar及其他的子类中存在很多处理时间的方法。
下面就是关于Calendar及其用法:
GregorianCalendar gregorianCalendar=new GregorianCalendar(1999,Calendar.AUGUST,31);
gregorianCalendar.add(Calendar.MONTH,13);注意我们加的是13个月,因为2000年的9月没有31天的,所以程序会选择9月30做为加一个月以后要显示的日期
int i=gregorianCalendar.get(Calendar.DAY_OF_WEEK);
//gregorianCalendar.set(Calendar.DAY_OF_MONTH, 33);通过这里我们可以看到其实我们使用的是内存在同一份copy,并且日期也可以累加。所以如果我们要表示一个增量的话,应该同时拥有2份内存copy
Date dt=gregorianCalendar.getTime();
DateFormat df=DateFormat.getDateInstance();
String s=df.format(dt);
System.out.println(s);
System.out.println(i);
result:
2000-9-30
7
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
总结:Java time方面主要是这3个类
Date,DateFormat,GregorianCalendar,其中GregorianCalendar拥有很多处理时间方面的方法,通过getTime与Date进行转换,最后通过DateFormat得到想要格式。
- java 日期(Date DateFormat Calendar)
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- Java-Date, Calendar, DateFormat
- Java - Date - Calendar - DateFormat
- Java中的日期/时间类,Date、DateFormat、Calendar类
- Java中的日期/时间类,Date、DateFormat、Calendar类
- java 日期(Date),日历(Calendar),格式化(DateFormat)使用方法
- 关于java日期类Date,DateFormat,SimpleDateFormat,Calendar总结
- Programming: java Date, Calendar, DateFormat
- 日期操作类(Date、Calendar、DateFormat、SimpleDateFormat)
- java日期(Date)、日历(Calendar)、日期格式(DateFormat)三类介绍
- java日期(Date)、日历(Calendar)、日期格式(DateFormat)三类介绍
- java日期(Date)、日历(Calendar)、日期格式(DateFormat)三类介绍
- Java中的Date、Calendar、DateFormat、SimpleDateFormat
- 1、java 之Calendar、Date、DateFormat类
- hdu how many tables
- 屌丝程序员赚钱之道之taobao 2
- 如何在linux下查看电脑硬件设备属性
- python 功能函数
- 如何在Android平台上使用JS直接调用Java方法
- java 日期(Date DateFormat Calendar)
- ubuntu 中eclipse 无法找到系统标准头文件
- 工作日志
- js 得到某一天是星期几 和 得到某一天的前一天、后一天
- 【PAT (Advanced Level)】1006. Sign In and Sign Out (25)
- Virtio:针对 Linux 的 I/O 虚拟化框架
- http://blog.csdn.net/dm_vincent/article/details/7769159
- 将十进制数字转换为二十六进制字母串
- iOS开发-检测用户截屏, 并获取所截图片