原文网址:http://highforest.blog.51cto.com/125539/842496/

熟悉Oracle数据库的人,应该知道:select to_char(sysdate,'yyyy-mm-dd' hh24:mi:ss)from dual将会查询到怎样的结果, 不错,就是类似2012-04-23 20:43:57这样的一个19位的字符串。那么在Java中怎么得到这样一个字符串呢?网上给出了不少类似的例子,但屡试不爽。只好仔细研究Java 的API文档,终于找到了解决办法:

  1. import java.util.*;
  2. import java.text.*;
  3. public class TestCalendar {
  4. /**
  5. * @param args
  6. */
  7. public static void main(String[] args) {
  8. Calendar cal1 = Calendar.getInstance();
  9. TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));       //非常关键的!!!
  10. java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
  11. System.out.println(sdf.format(cal1.getTime()));
  12. }
  13. }

需要说明的是这样其中TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));  非常关键,没有这句,出来的结果肯定是GMT标准时间,而不是北京时间!

还需要留意,每次都要通过调用Calendar.getInstance()来读取当前时刻的时间,不要被Calendar.getTime()方法所蒙骗:

  1. public class TestCalendar {
  2. /**
  3. * @param args
  4. */
  5. public static void main(String[] args) {
  6. Calendar cal1 = Calendar.getInstance();
  7. TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));
  8. java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss SSS");
  9. System.out.println(sdf.format(cal1.getTime()));
  10. for(int i = 0; i<100; i++){
  11. float f = 999999.9f;
  12. do {
  13. ff = f - 1.0000001f;
  14. } while(f>0.0f);
  15. }
  16. //      cal1 = Calendar.getInstance();
  17. System.out.println(sdf.format(cal1.getTime()));
  18. }
  19. }

会输出两个相同的时间串:

2012-04-23 21:11:56 699
2012-04-23 21:11:56 699

去掉第17行的注释符后,会输出:

2012-04-23 21:13:28 736
2012-04-23 21:13:29 235

【转】Java中本地时间的获取方法--不错的更多相关文章

  1. Java中系统时间的获取_currentTimeMillis()函数应用解读

    快速解读 System.currentTimeMillis()+time*1000) 的含义 一.时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微 ...

  2. Java中的equals和hashCode方法

    本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...

  3. JAVA中的时间操作

    java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...

  4. Java中日期时间API小结

    Java中为处理日期和时间提供了大量的API,确实有把一件简单的事情搞复杂的嫌疑,各种类:Date Time Timestamp Calendar...,但是如果能够看到时间处理的本质就可以轻松hol ...

  5. Java中的equals和hashCode方法详解

    Java中的equals和hashCode方法详解  转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...

  6. 1 Java中的时间类型

    总结:sql中的时间转 util的时间直接赋值即可:反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造器生成sql的时间格式. 1 Java中的时间类型 java.sql包下给出三个与数据 ...

  7. Java中的时间日期处理

    程序就是输入——>处理——>输出.对数据的处理是程序员需要着重注意的地方,快速.高效的对数据进行处理时我们的追求.其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理 ...

  8. 转:Java中的equals和hashCode方法详解

    转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...

  9. Java中的栈,堆,方法区和常量池

    要说Java中的栈,堆,方法区和常量池就要提到HotSpot,HotSpot是Sun JDK 和 Open JDK中所带的虚拟机. (Sun JDK 和 Open JDK除了注释不同,代码实现基本上是 ...

随机推荐

  1. sync fsync fdatasync ---systemtap跟踪

    aa.stp: probe kernel .function ( "sys_sync" ) { printf ( "probfunc:%s fun:%s\n", ...

  2. Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现

    1. 开发的时候往往会出现很多问题(java内部系统框架中没有提供这些异常) 比如说:考试成绩必须在0~100之间. 很明显java没有对应的异常,需要我们自己来做一个异常. (1)继承自Except ...

  3. python简单小爬虫爬取易车网图片

    上代码: import requests,urllib.request from bs4 import BeautifulSoup url = 'http://photo.bitauto.com/' ...

  4. [Codeforces 501D] - Misha and Permutations Summation

    题意是给你两个长度为$n$的排列,他们分别是$n$的第$a$个和第$b$个全排列.输出$n$的第$\left(a+b \right)\textrm{mod} \, n!$个全排列. 一种很容易的想法是 ...

  5. word2vec生成词向量原理

    假设每个词对应一个词向量,假设: 1)两个词的相似度正比于对应词向量的乘积.即:$sim(v_1,v_2)=v_1\cdot v_2$.即点乘原则: 2)多个词$v_1\sim v_n$组成的一个上下 ...

  6. 使用Eclipse创建Hibernate工程

    创建一个java project项目,加入hibernate的jar包和数据库驱动包,并引入到项目.

  7. 保垒机SSH登录脚本

    线上服务器一般都会有一个保垒机,我们登录线上服务器的时候都要通过这个堡垒机来实现登录,这样我们就要维护很多线上服务器的ip,很麻烦. 所以写了一个脚本用来便捷的登录各个服务器,可以把这个脚本放到跳板机 ...

  8. ajax调试兼容性

    <script type="text/javascript"> if(typeof ActiveXObject!= 'undefined'){ var x = new ...

  9. UITextField AutoComplete iOS输入框内文本自动完成

    当你打开Safari的时候,输入网址,会有许多候选网址,点击后,自动填充到输入框,进入网页. 打开词典查单词的时候,输入前面部分字母,软件会给出符合的候选单词. 这样做的目的,是为了省去用户繁琐的输入 ...

  10. 解析一下rtmp协议比较难懂的地方

    官方文档写的过于复杂,这里弄个简单的好入门的.chunk 分基础头,消息头,时间戳,数据部分基础头中第一个字节最高位的两个位是用来设置消息头的四种格式的,和基础头没关系,整个基础头有3个字段的长度存储 ...