【转】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除了注释不同,代码实现基本上是 ...
随机推荐
- Oracle MERGE INTO的使用方法
非常多时候我们会出现例如以下情境,假设一条数据在表中已经存在,对其做update,假设不存在,将新的数据插入.假设不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否 ...
- oracle暂时表空间 ORA-01652:无法通过16(在表空间XXX中)扩展 temp 字段
今天在查数据的时候报错 ORA-01652:无法通过16(在表空间temp1中)扩展 temp 字段 查看表空间使用明细 SELECT b.tablespace, b.segfile# ...
- 第二篇:R语言数据可视化之数据塑形技术
前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节 ...
- CoreText实现图文混排之点击事件
今天呢,我们继续把CoreText图文混排的点击事件补充上,这样我们的图文混排也算是圆满了. 哦,上一篇的链接在这里 http://www.jianshu.com/p/6db3289fb05d Cor ...
- html.ex.day01
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 关于uploadify 没有显示进度条!!!!
如果你也弄了很久不知道为什么不出现上传进度条!,那就一定要看这里了! 我注释了 queueID 属性后 就出现了!!!!! 就是这么简答! //添加界面的附件管理 $('#file_upload'). ...
- MySQL user表root用户误删除后恢复
mysql user表root 用户误删除后恢复root用户 方法/步骤 1.停止mysql服务:在mysql安装目录下找到my.ini:在my.ini中找到以下片段[mysqld]:另起一行加入代码 ...
- Landsat元数据批量下载工具
目录 前言 landsat数据情况简介 下载元数据 总结 一.前言 最近由于工作需要,需要下载部分landsat数据的元数据,老板大手一挥,给了十几年的landsat的path.row以 ...
- Delphi 用ToolButton和MonthCalendar实现DateTimePicker的功能
效果图如下: 实现平台:xp xe2,其中以上功能的实现,核心主要是参考了万一老师的资料,连接:http://www.cnblogs.com/del/archive/2011/05/12/204411 ...
- C++ Primer 5th 第10章 泛型算法
练习10.1:头文件algorithm中定义了一个名为count的函数,它类似find,接受一对迭代器和一个值作为参数.count返回给定值在序列中出现的次数.编写程序,读取int序列存入vector ...