`

JAVA时间的一个陷阱

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



public class DateTestError{

	public static void main(String args[]){
		System.out.println("old date:");
			DateFormat df = new SimpleDateFormat(
					"yyyyMMddHHmmss");
			try {
				Date date = null;
				date = df.parse("20121112123456");
				System.out.println(date);
				
				date = df.parse("20121112133456");
				System.out.println(date);
				
				date = df.parse("20121112003456");
				System.out.println(date);
			} catch (ParseException e) {
				e.printStackTrace();
			}
			System.out.println("new date:");	
			DateFormat df2 = new SimpleDateFormat(
					"yyyyMMddhhmmss");
			try {
				Date date = null;
				date = df2.parse("20121112123456");
				System.out.println(date);
				
				date = df2.parse("20121112133456");
				System.out.println(date);
				
				date = df2.parse("20121112003456");
				System.out.println(date);
			} catch (ParseException e) {
				e.printStackTrace();
			}
	}
}

 

结果输出:

old date:
Mon Nov 12 12:34:56 CST 2012
Mon Nov 12 13:34:56 CST 2012
Mon Nov 12 00:34:56 CST 2012
new date:
Mon Nov 12 00:34:56 CST 2012
Mon Nov 12 13:34:56 CST 2012
Mon Nov 12 00:34:56 CST 2012

 

24小时制的时间格式,写的时候,本人犯了一个很二的错误:

上面写的时间格式,特别小心"yyyyMMddHHmmss",这里面的大H,HH不能用hh,会出错误。而且这个错误非常不容易发现,只有当时间是12点多时,会变成0点,其余都是一样的,因此非常容易出现错误。

 

总结

Java时间24小时和12小时制:

  1. 24小时制: “yyyy-MM-dd HH:mm:ss”
  2. 12小时制: “"yyyy-MM-dd hh:mm:ss"” 

但要注意,即使使用12小时制,如果传入的是13-23点,仍然是正确的!

分享到:
评论
1 楼 mousepc 2013-07-12  
今天被这个问题害了...

相关推荐

    java解惑(+Java 解惑你知多少)

    你是否曾经花费数天时间去追踪一个由Java或其类库的陷阱和缺陷而导致的bug?你喜欢智力测验吗?本书正好适合你!.. Bloch和Gafter继承了Effective Jaya一书的传统,深入研究了Java编程语言及其核心类库的细微之处。本书...

    java解惑 中文版

    你是否曾经花费过数天时间去追踪一个由Java或其类库的陷阱和缺陷而导致的bug?你喜欢智力测验吗?那么这本书正好适合你! 在《高效Java(Effective Java)》的传统中,Bloch和Gafter深入研究了Java编程语言及其核心...

    JAVA解惑(美)布洛赫

    你是否曾经花费过数天时间去追踪一个由Java或其类库的陷阱和缺陷而导致的bug?你喜欢智力测验吗?那么这本书正好适合你! 在《高效Java(Effective Java)》的传统中,Bloch和Gafter深入研究了Java编程语言及其核心...

    Java谜题解惑 中文版CHM格式

    该恒等式具有正确的含义,但是当与 Java 的截尾整数整除操作符相结合时,它就意味着:当取余操作返回一个非零的结果时,它与左操作数具有相同的正负符号。 当 i 是一个负奇数时,i % 2 等于-1而不是1, 因此 isOdd ...

    Java并发编程实战

    本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则...

    经典游戏使用Java实现快乐泡泡堂小游戏

    泡泡堂是一款经典的休闲竞技游戏,自上线以来一直深受玩家们的喜爱,游戏以轻松愉快的氛围和简单易懂的操作方式吸引了大量玩家,尤其是那些怀念童年时光的朋友们,在泡泡堂的世界里,玩家们可以扮演可爱的角色,通过...

    java_and_containers

    您确实获得了容器的所有优点,例如隔离,可伸缩性,易于部署和版本管理,但是将其与Java一起使用时会遇到什么陷阱呢? 内存管理,图像大小,初始化时间–有时它们可​​能很棘手。 但是,有一种方法和最佳实践可以...

    阿里云javasdk源码-aws-docs:关于AWS

    自己的文档是一个很棒但庞大的资源,很少有人有时间完整阅读,并且除了官方事实之外不包含任何内容,因此省略了工程师的经验。 博客或博客中的信息也不是始终保持最新状态。 本指南由使用 AWS 的工程师撰写并为他们...

    java版商城源码-hello-erlang:Erlang的笔记和例子

    建立在这样一种观念之上:其中一个组件的故障不应影响整个系统 每个 erlang 术语都可以与任何其他术语进行比较 erlang 是一种函数式语言,但不是纯函数式语言,有副作用,例如注册进程名称。 俗语 如果两者都被冻结...

    30天搞定Java–day20

    文章目录每日一考和复习Java常用类字符串相关的类String类String的特性String陷阱String常用方法String和其他类型转换StringBuffer类、StringBuilder类StringBuffer的常用方法效率对比JDK 8之前的日期时间API ...

    阿里云javasdk源码-Cloud:云

    自己的文档是一个很棒但庞大的资源,很少有人有时间完整阅读,并且除了官方事实之外不包含任何内容,因此省略了工程师的经验。 博客或博客中的信息也不是始终保持最新状态。 本指南由使用 AWS 的工程师撰写并为他们...

    阿里云javasdk源码-awsguide:向导

    自己的文档是一个很棒但庞大的资源,很少有人有时间完整阅读,并且除了官方事实之外不包含任何内容,因此省略了工程师的经验。 博客或博客中的信息也不是始终保持最新状态。 本指南由使用 AWS 的工程师撰写并为他们...

    基于SNMP/MIB的网络数据获取系统设计与实现

    AdventNet SNMP API为基于SNMP的网络管理应用提供了一个全面的开发工具包。AdventNet的SNMP栈包含一系列强大的Java SNMP库,用来为监控和跟踪网络元素创建实时的应用程序,这些应用程序是可靠的、可伸展的且独立于OS...

    JavaPOC:概念证明

    我花了很多研究才能了解如何在JMockit中仅模拟一个方法System.currentTimeMillis() 。 我陷入的陷阱是模拟了整个System.class ,导致了类似13的系统方法调用,我模拟了13个响应,直到找到了模拟对currentTimeMillis...

    阿里云javasdk源码-AWS:自动售货机

    自己的文档是一个很棒但庞大的资源,很少有人有时间完整阅读,并且除了官方事实之外不包含任何内容,因此省略了工程师的经验。 博客或博客中的信息也不是始终保持最新状态。 本指南由使用 AWS 的工程师撰写并为他们...

    反网页爬虫系统.zip

    观察名单中的访问着在下一单位时间内继续访问则要求其 填写验证码,若没有填写验证码而持续发起大量请求,则判定为爬虫,加入黑名单。 2.离线策略:引入访问统计系统,对访问记录进行持久化,按分、小时、天等维度...

    阿里云javasdk源码-aws-guide:aws指南

    自己的文档是一个很棒但庞大的资源,很少有人有时间完整阅读,并且除了官方事实之外不包含任何内容,因此省略了工程师的经验。 博客或博客中的信息也不是始终保持最新状态。 本指南由使用 AWS 的工程师撰写并为他们...

    阿里云javasdk源码-AWS_Openguide:AWS_Openguide

    自己的文档是一个很棒但庞大的资源,很少有人有时间完整阅读,并且除了官方事实之外不包含任何内容,因此省略了工程师的经验。 博客或博客中的信息也不是始终保持最新状态。 本指南由使用 AWS 的工程师撰写并为他们...

Global site tag (gtag.js) - Google Analytics