`
prettyboy434
  • 浏览: 20981 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

让人蛋疼的SimpleDateFormat类

阅读更多
import java.text.ParseException;
import java.util.Date;


import junit.framework.TestCase;
import com.ibm.icu.text.SimpleDateFormat;

public class TestDate extends TestCase{
	private SimpleDateFormat icusdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private java.text.SimpleDateFormat javaTextsdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	public void testFomat(){
		Date d=new Date();
		System.err.println("com.ibm.icu.text.SimpleDateFormat格式化结果"+icusdf.format(d));
		System.err.println("java.text.SimpleDateFormat格式化结果:"+javaTextsdf.format(d));
	}
	public void testParse() throws ParseException{
		String dateStr="2011-08-19 17:40:00";
		System.err.println("com.ibm.icu.text.SimpleDateFormat解析结果"+icusdf.parse(dateStr));
		System.err.println("java.text.SimpleDateFormat解析结果:"+javaTextsdf.parse(dateStr));
	}

}

	

}

 打印结果:

   com.ibm.icu.text.SimpleDateFormat格式化结果2011-08-19 18:45:10
   java.text.SimpleDateFormat格式化结果:2011-08-19 17:45:10
   com.ibm.icu.text.SimpleDateFormat解析结果Fri Aug 19 16:40:00 CST 2011
   java.text.SimpleDateFormat解析结果:Fri Aug 19 17:40:00 CST 2011

由上面打印结果可以看出,同样的类,同样的方法,就因为包不同格式化或解析后的结果也都不同

得出结果:com.ibm.icu.text.SimpleDateFormat与java.text.SimpleDateFormat比较

  1.fomat()方法,前者比后者大一小时

  2.parse()方法,前者比后者小一小时

  3.当然 java.text.SimpleDateFormat得到的结果是正确的

com.ibm.icu.text.SimpleDateFormat是ICU4J中的一个类。ICU4J 是IBM的国际化开发组件ICU 的Java语言实现版本。为何会发生这种怪异现象,我也没搞清楚,初步猜测是因为ibm这个包的默认时区不同。所以大家用ICU这个SimpleDateFormat时应该注意导入是哪个包

 

分享到:
评论
1 楼 caili314 2012-11-29  
Daylight saving time?

相关推荐

    高并发之-SimpleDateFormat类的线程安全问题和解决方案.docx

    SimpleDateFormat类的线程安全问题和解决方案 SimpleDateFormat类的线程安全问题 SimpleDateFormat类是Java提供的日期时间转化类,用于将日期和时间类型的数据进行解析和格式化。在Java开发中,SimpleDateFormat类...

    java 使用SimpleDateFormat类获取系统的当前时间

    在Java编程语言中,`SimpleDateFormat` 是一个非常重要的日期和时间格式化工具类,它允许程序员以特定的模式来解析和格式化日期。当我们需要从系统获取当前时间并按照自定义格式显示时,`SimpleDateFormat` 就派上了...

    深入理解Java:SimpleDateFormat安全的时间格式化

    DateFormat类是一个抽象类,而SimpleDateFormat类是DateFormat类的一个实现类。 知识点7: SimpleDateFormat的format()和parse()方法 SimpleDateFormat类提供了format()和parse()方法,format()方法将日期对象转化...

    Java多线程环境下SimpleDateFormat类安全转换

    "Java多线程环境下SimpleDateFormat类安全转换" 在Java多线程环境下,SimpleDateFormat类的使用可能会出现线程安全问题。本文主要介绍了Java多线程环境下SimpleDateFormat类的安全转换,通过示例代码详细介绍了如何...

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

    【Date类】 Date类是Java中用于处理时间和日期的...Date类是最基础的,而Calendar类提供了更丰富的操作,SimpleDateFormat则负责日期和时间的格式化和解析。在实际开发中,根据需求选择合适的类来处理日期和时间问题。

    由浅入深解析 SimpleDateFormat

    SimpleDateFormat 是 Java 语言中的一种日期和时间格式化类,用于将日期和时间格式化为字符串或将字符串解析为日期和时间。它是 DateFormat 的子类,继承自 java.text.Format。 SimpleDateFormat 的继承关系 ...

    JAVA使用SimpleDateFormat类表示时间代码实例

    JAVA 使用 SimpleDateFormat 类表示时间代码实例 JAVA 中的日期和时间处理是非常重要的,特别是在程序开发中,经常需要处理日期和时间的相关数据。在 JAVA 中,我们可以使用 java.util 包中的 Date 类来获取当前...

    JavaScript实现的SimpleDateFormat

    在JavaScript中,没有内置的`SimpleDateFormat`类,它是一个Java中的类,用于日期和时间的格式化。然而,由于JavaScript在处理日期时的功能相对有限,开发者常常需要自定义函数或者使用第三方库来实现类似的功能。这...

    SimpleDateFormat使用详解

    SimpleDateFormat 是 Java 中的一个日期和时间格式化类,它继承自 DateFormat 类。SimpleDateFormat 允许用户以各种方式格式化日期和时间,例如以年、月、日、时、分、秒等不同的格式来表示日期和时间。 ...

    java SimpleDateFormat &Calendar

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

    有关SimpleDateFormat的常用方法说明

    `SimpleDateFormat`是Java中用于格式化日期和时间的一个类。它允许我们自定义日期/时间的显示格式,这在实际开发中非常有用,尤其是在处理不同地区或语言环境下的日期时间显示需求时。 #### 二、SimpleDateFormat的...

    simpleDateFormat是线程不安全的

    在Java编程语言中,`SimpleDateFormat`类是一个广泛使用的日期时间格式化工具,但它的线程安全性是一个常常被开发者忽视的问题。标题指出的"simpleDateFormat是线程不安全的",意味着在多线程环境下,如果多个线程...

    java SimpleDateFormat 显示于系统时间不符

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); date.setTime(time); System.out.println(sdf.format(date)); 发现时间于想要的时间不符,请运行Time.reg文件

    SimpleDateFormat格式化日期

    日期操作。。。基础的SimpleDateFormat格式化日期!!操作!》初级学习代码

    日期操作类(DateFormat、SimpleDateFormat)

    NULL 博文链接:https://chaoyi.iteye.com/blog/2082317

    详解Java中格式化日期的DateFormat与SimpleDateFormat类

    在Java编程语言中,日期和时间的格式化是通过`java.text.DateFormat`和`java.text.SimpleDateFormat`类来实现的。这两个类主要用于将日期和时间对象转换为人类可读的字符串,以及将这些字符串解析回日期和时间对象。...

    利用File类的方法,获得某已有文件的最后修改时间.docx

    4. 使用`SimpleDateFormat`类格式化日期和时间,使其可读性更强。 5. 最后,将文件名和格式化后的时间打印出来。 示例代码: ```java import java.io.File; import java.io.IOException; import java.text....

    ThreadLocal:如何优雅的解决SimpleDateFormat多线程安全问题

    目录SimpleDateFormat诡异bug复现SimpleDateFormat诡异bug字符串日期转Date日期(parse)Date日期转String类型(format)SimpleDateFormat出现bug的原因如何解决SimpleDateFormat多线程安全问题局部变量使用...

    创建SimpleDateFormat对象,确定日期被格式化的格式.txt

    1.创建SimpleDateFormat对象,确定日期被格式化的格式 2.使用循环,在循环中调用Thread的sleep方法,让线程休眠1s后打印当前时间的字符串

    Java 实例 - 格式化时间SimpleDateFormat使用源代码-详细教程.zip

    这个详细教程将引导你了解如何有效地使用`SimpleDateFormat`类。以下是关于`SimpleDateFormat`的一些核心知识点: 1. **类介绍**: `SimpleDateFormat`是`java.text.SimpleDateFormat`类的一个实例,它实现了`...

Global site tag (gtag.js) - Google Analytics