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

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 SimpleDateFormat &Calendar

    在Java编程语言中,`SimpleDateFormat`和`Calendar`是两个重要的日期和时间处理类,它们在处理日期格式化、解析以及日期计算方面扮演着重要角色。本文将深入探讨这两个类的功能、用法以及它们之间的关系。 `...

    java的calendar具体用法

    在Java中处理日期和时间非常常见,而`java.util.Calendar`类则是进行此类操作的核心工具之一。`Calendar`类提供了一系列的功能来帮助开发者处理复杂的日期计算问题,比如日期的加减、获取特定日期组件等。 #### 二...

    Java 之 Date 和 Calendar 实例

    在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...

    java中时间类Date和Calendar的使用

    总结来说,Java中的`Date`和`Calendar`类提供了基本的时间处理功能,`DateFormat`和`SimpleDateFormat`则负责日期和时间的格式化,使我们能够根据需要将日期和时间转换为人类可读的字符串。在实际开发中,这些类经常...

    Java基础之Date和Calendar类的使用方法

    Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...

    JavaCalendar_JAVA源码_

    对于复杂的时间计算和格式化,可以使用`SimpleDateFormat`或Java 8引入的`DateTimeFormatter`。 总的来说,Java的`Calendar`类是处理日期和时间的核心工具,虽然在Java 8后有新的API取代,但在大量存在的旧代码和库...

    Java 之 Date 和 Calendar

    这两个类在不同的Java版本中有着不同的用法和功能,对于理解并正确使用它们是Java开发者必备的知识点。 `Date`类在早期的Java版本中被广泛使用,用于表示一个特定的瞬间,精确到毫秒。在`java.util`包下,`Date`...

    java日历控件Calendar 多种类型

    使用Java日历控件Calendar时,开发者可以通过以下方法进行操作: 1. 初始化:通过Calendar.getInstance()获取实例。 2. 设置日期:调用set()方法,传入年、月、日、小时、分钟、秒和毫秒等参数。 3. 获取日期:使用...

    calendar的用法小结

    使用 Calendar.getInstance() 方法可以取得当前时间,并将其格式化成相应的格式。例如: ```java Calendar rightNow = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); ...

    java 中Calendar日期格式的转换

    总之,`Calendar`类是Java中处理日期和时间的强大工具,通过结合`SimpleDateFormat`,我们可以实现各种日期格式的转换,满足不同场景的需求。理解`Calendar`及其相关类的使用,对于任何Java开发者来说都是必不可少的...

    Date、String、Calendar之间的转换_java编程_

    在Java编程中,Date、String和Calendar是三个重要的日期时间处理类,它们之间相互转换的技巧是开发者必备的知识。理解并熟练掌握这三者之间的转换,对于处理日常的日期时间问题至关重要。 首先,我们来看`Date`类。...

    JAVA Calendar,Date类详解

    总的来说,`Calendar`和`Date`类是Java处理日期和时间的基础,虽然在Java 8后有了更好的替代选项,但理解这两个类的工作原理和用法对于任何Java开发者来说都是非常必要的。通过熟练掌握这些基本概念,你可以更有效地...

    第五章.常用类.java.API概述——Date类,Calendar类,SimpleDateFormat类,Big.pdf

    Calendar类提供了一系列的方法来获取和设置日期和时间组件,如: ```java int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 获取当前日期是一周的第几天 int dayOfMonth = calendar.get(Calendar.DAY_OF_...

    java源码:Calendar万年历.zip

    4. **日期格式化**:虽然`Calendar`本身不提供格式化输出,但可以配合`SimpleDateFormat`或`DateTimeFormatter`(Java 8及以后版本)来将日期转换为用户友好的字符串。 5. **国际化支持**:`Calendar`支持多种语言和...

    Java中Date和Calendar常用方法

    以下是这两个类的一些常用方法和实践。 首先,我们来看`Date`类。`Date`对象代表了一个具体的时刻,精确到毫秒。创建一个`Date`对象可以通过调用`new Date()`来完成。但是,如果我们想要将`Date`对象转换为特定的...

    Java中Calendar类.pdf

    Java中的`Calendar`类是处理日期和时间的核心类,它是一个抽象类,提供了一系列方法用于在特定瞬间与一组日历字段之间进行转换和操作。自JDK 1.1起,`Calendar`类就被推荐用来处理日期和时间,因为它的功能比`Date`...

    基于Java的Calendar万年历.zip

    在Java编程语言中,`Calendar`类是...如果`基于Java的Calendar万年历.zip`中的代码包含了一个完整的万年历应用,那么这将是一个很好的学习资源,展示了如何在实际项目中使用`Calendar`类来处理复杂的日期和时间需求。

    基于Java的实例源码-Calendar万年历.zip

    在这个压缩包中的“Calendar”文件可能包含了实现以上功能的Java源代码,包括类、方法和可能的测试用例。通过学习这些源码,你可以深入理解`Calendar`类的工作原理,并能更好地掌握Java日期和时间的处理。 总之,...

    聊一聊Calendar的使用

    在Java编程语言中,`Calendar`类是处理日期和时间的核心工具类,它是一个抽象类,提供了各种日期和时间操作的方法。这篇博文“聊一聊Calendar的使用”可能详细介绍了如何利用`Calendar`进行日期计算、时间格式化以及...

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

    Java中的时区处理涉及到几个关键类:Date, Calendar, TimeZone, 和 SimpleDateFormat。这些类在处理时间日期时扮演着不同的角色。 1. **Date类**:Date对象代表的是一个时间点,精确到毫秒。它不包含任何时区信息,...

Global site tag (gtag.js) - Google Analytics