【转】Java中本地时间的获取方法--不错
原文网址: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文档,终于找到了解决办法:
- import java.util.*;
- import java.text.*;
- public class TestCalendar {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Calendar cal1 = Calendar.getInstance();
- TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00")); //非常关键的!!!
- java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
- System.out.println(sdf.format(cal1.getTime()));
- }
- }
需要说明的是这样其中TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00")); 非常关键,没有这句,出来的结果肯定是GMT标准时间,而不是北京时间!
还需要留意,每次都要通过调用Calendar.getInstance()来读取当前时刻的时间,不要被Calendar.getTime()方法所蒙骗:
- public class TestCalendar {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Calendar cal1 = Calendar.getInstance();
- TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));
- java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss SSS");
- System.out.println(sdf.format(cal1.getTime()));
- for(int i = 0; i<100; i++){
- float f = 999999.9f;
- do {
- ff = f - 1.0000001f;
- } while(f>0.0f);
- }
- // cal1 = Calendar.getInstance();
- System.out.println(sdf.format(cal1.getTime()));
- }
- }
会输出两个相同的时间串:
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中本地时间的获取方法--不错的更多相关文章
- Java中系统时间的获取_currentTimeMillis()函数应用解读
快速解读 System.currentTimeMillis()+time*1000) 的含义 一.时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微 ...
- Java中的equals和hashCode方法
本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...
- JAVA中的时间操作
java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...
- Java中日期时间API小结
Java中为处理日期和时间提供了大量的API,确实有把一件简单的事情搞复杂的嫌疑,各种类:Date Time Timestamp Calendar...,但是如果能够看到时间处理的本质就可以轻松hol ...
- Java中的equals和hashCode方法详解
Java中的equals和hashCode方法详解 转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...
- 1 Java中的时间类型
总结:sql中的时间转 util的时间直接赋值即可:反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造器生成sql的时间格式. 1 Java中的时间类型 java.sql包下给出三个与数据 ...
- Java中的时间日期处理
程序就是输入——>处理——>输出.对数据的处理是程序员需要着重注意的地方,快速.高效的对数据进行处理时我们的追求.其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理 ...
- 转:Java中的equals和hashCode方法详解
转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...
- Java中的栈,堆,方法区和常量池
要说Java中的栈,堆,方法区和常量池就要提到HotSpot,HotSpot是Sun JDK 和 Open JDK中所带的虚拟机. (Sun JDK 和 Open JDK除了注释不同,代码实现基本上是 ...
随机推荐
- [转] Are You Making a Big Mistake in This Volatile Market?
Stock market volatility continues unabated. It may be too early to tell, but I’m marking the top of ...
- JDK5-自动拆装箱
拆装箱:在基本类型与其对应的引用类型之间转换 装箱:Integer iObj = 5; 拆箱:int i = 5 + iObj; 装箱时,一个字节以内的数据在一个常量池中(小整数的使用频率高),即-1 ...
- yii2 and short_open_tag
在看yii2的时候, 在main文件里看到了这样一段代码 <?= Yii::$app->language ?> 而我查看了php.ini里的配置, short_open_tag=Of ...
- AJAX入门学习(转)
一.基础概念 1.全称:Asynchronous.JavaScript.And.XML(异步的 JavaScript 和 XML). 2.定义: Ajax不是一个技术,它实际上是几种技术,每种技术都有 ...
- JavaScript设计模式之策略模式(学习笔记)
在网上搜索“为什么MVC不是一种设计模式呢?”其中有解答:MVC其实是三个经典设计模式的演变:观察者模式(Observer).策略模式(Strategy).组合模式(Composite).所以我今天选 ...
- 为什么z-index不起作用
感觉很简单的东西 在用的时候 可能会遇到这样活那样的问题 这就是要注意细节:参考地址:http://www.ourjour.com/136/ 设置z-index 不起作用,可能是这三个原因: 1.父标 ...
- JFrome 登陆/注册/回显无数据库连接小程序
当离开RCP插件区重新回顾一下JFrame窗口程序的标签.页面间的跳转. 完成一个登陆.注册界面.(界面完成后练习输入输出流,将前台的注册信息保存到一个文件夹下的.txt文件中) 首先向通过JFram ...
- c#结构体和字节数组的转换、字节数组和stream的转换
本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/streambytsstruct.html using System; using ...
- Chrome扩展与用户隐私
转载自https://www.imququ.com/post/chrome-extensions-and-user-privacy.html Google Chrome浏览器应该早就是大家的默认了 ...
- ExtJS智能提示工具spket安装与破解
用myeclipse写java程序,最怕的是什么呢,写javascript代码,原因很简单,没有智能提示,ExtJS是完全js代码的界面库,写起来就更痛苦了,幸好有人做了spket插件,此文采用傻瓜式 ...