`
maketc
  • 浏览: 31314 次
社区版块
存档分类
最新评论

Java的SimpleDateFormat和Calendar的用法

阅读更多
在 Java 应用中,格式化日期时间通常会用到 SimpleDateFormat 类
public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。

SimpleDateFormat函数的继承关系:
java.lang.Object
    |
    +----java.text.Format
            |
            +----java.text.DateFormat
                    |
                    +----java.text.SimpleDateFormat
下面是个小例子:
import java.text.*;
import java.util.Date;

/**
   SimpleDateFormat函数语法:

   G 年代标志符
   y 年
   M 月
   d 日
   h 时 在上午或下午 (1~12)
   H 时 在一天中 (0~23)
   m 分
   s 秒
   S 毫秒
   E 星期
   D 一年中的第几天
   F 一月中第几个星期几
   w 一年中第几个星期
   W 一月中第几个星期
   a 上午 / 下午 标记符
   k 时 在一天中 (1~24)
   K 时 在上午或下午 (0~11)
   z 时区
*/
public class FormatDateTime {

     public static void main(String[] args) {
         SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
         SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
         SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
         SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
         SimpleDateFormat myFmt4=new SimpleDateFormat(
                 "一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
         Date now=new Date();
         System.out.println(myFmt.format(now));
         System.out.println(myFmt1.format(now));
         System.out.println(myFmt2.format(now));
         System.out.println(myFmt3.format(now));
         System.out.println(myFmt4.format(now));
         System.out.println(now.toGMTString());
         System.out.println(now.toLocaleString());
         System.out.println(now.toString());
     }   
   
}

效果:
2004年12月16日 17时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004

在java中取得当前的系统时间并且转化成自己想要的格式

     需要引进 java.util.Calendar 和 java.text.SimpleDateFormat 这两个类:

        Calendar rightNow = Calendar.getInstance();
         SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddhhmmss");
         String sysDatetime = fmt.format(rightNow.getTime()); 

    可以对 new SimpleDateFormat("yyyyMMddhhmmss") 中引号里面的格式进行编辑,转换成自己相要的格式,比如还可以转
    换成    new    SimpleDateFormat("yyyy/MM/dd    hh:mm:ss    ") 的格式。

注意:要想获得 24 小时制的时间,则格式化模式串中应该用大写的“HH”, 小写的 “h”是12小时制的

我的代码
	public String cardStat() {
		if(!(beginDate.length()>0&&endDate.length()>0)){
			GregorianCalendar e=new GregorianCalendar();
			GregorianCalendar b=null;
			e.set(Calendar.MINUTE,0);
			e.set(Calendar.SECOND, 0);
			if(dateStr.equals("yyyy-mm-dd")){
				e.set(Calendar.HOUR, 0);
				b=(GregorianCalendar)e.clone();
				b.add(Calendar.DAY_OF_YEAR, -7);
			}else{
				b=(GregorianCalendar)e.clone();
				b.add(Calendar.HOUR_OF_DAY, -5);
			}
			SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			beginDate=dateFormat.format(b.getTime());
			endDate=dateFormat.format(e.getTime());
		}
		list=statisticsImpl.selectStat(beginDate,endDate,dateStr);
//		for (Iterator iterator = list.iterator(); iterator.hasNext();) {
//			Map map = (Map) iterator.next();
//			System.out.println(map.get("C"));
//		}
		return SUCCESS;
	}
分享到:
评论

相关推荐

    java中时间类Date和Calendar的使用

    java中时间类Date和Calendar的使用  java中时间类Date和Calendar的使用  <PRE class=java name="code">package cn.com;  import java.text.DateFormat;  import java.text.ParseException;  import java.text....

    Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat的区别于用法

    主要介绍了Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat的区别于用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java的日期时间处理类讲解代码( Date 、Calendar、SimpleDateFormat、LocalDateTime)

    本源码资源提供了Java中的日期时间处理类相关内容,包括日期、时间和时区的操作方法和示例。它涵盖了Java编程中常用的日期时间处理需求以及如何使用日期时间类来解决这些问题。 适用人群 本源码资源适用于具备一定...

    手机话费计费系统Java

    三,就是Java类库里面的date和Calendar的使用和相互转换(还要考虑实际日期的情况,比如闰年,平年,2月份,30/31日的月,月末与月初的交接,还有时间格式SimpleDateFormat 以及异常处理),这些问题相信很多同学都...

    编写一个java应用程序将一个包含多个子目录和文件的目录复制到另外一个指定的目录下

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import javax.swing.filechooser.FileFilter; 实验后的结果验证 总结体会 通过此次实验,我初步掌握了复制的目录中包含的...

    java常用工具类的使用

    而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date类的大多数方法都被标识为过时,表示更灵活的时间类请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而中国更习惯于...

    java日期处理总结

    java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...

    JAVA基础课程讲义

    DateFormat类和SimpleDateFormat类 125 Calendar日历类 126 可视化日历的编写 128 Math类 131 File类 132 File类的基本用法 132 树状结构展现文件结构 133 枚举 133 上机作业 135 第七章 容器(Collection) 136 容器...

    Java开发详解.zip

    031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf...

    java范例开发大全源代码

     实例194 使用SimpleDateFormat类获取系统的当前时间 329  实例195 显示某年某月某一周的信息 330  实例196 显示某年某月的信息 332  实例197 时间的设置与获取 334  实例198 万年历(农历和阳历的互换...

    java范例开发大全

    实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 ...

    Java范例开发大全 (源程序)

     实例194 使用SimpleDateFormat类获取系统的当前时间 329  实例195 显示某年某月某一周的信息 330  实例196 显示某年某月的信息 332  实例197 时间的设置与获取 334  实例198 万年历(农历和阳历的互换) ...

    java范例开发大全(pdf&源码)

    实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 ...

    Java范例开发大全(全书源程序)

    实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 ...

    Java开发技术大全 电子版

    13.5.2使用SimpleDateFormat格式化输出时间405 13.5.3Calendar类的特色408 13.5.4利用GregorianCalendar输出日历411 13.6Formatter类的使用413 13.6.1Formatter的简单使用413 13.6.2时间格式转换符详解415 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例133 使用方法实现线程同步 172 实例134 使用代码块实现线程同步 174 实例135 使用特殊域变量实现线程同步 175 实例136 使用重入锁实现线程同步 176 实例137 使用线程局部变量实现线程同步 177 实例138 简单的...

    浅析Java中Data类的应用

    Date 类从Java 开发包(JDK) 1.0 就开始进化, 当时它只包含了几个取得或者设置一个日期数据的各个部分的方法, 比如说月, 日, 和年。这些方法现在遭到了批评并且已经被转移到了Calendar类里去了, 我们将在本文中...

Global site tag (gtag.js) - Google Analytics