Java中指定时区的3种方法_java

这两天在做与某知名一卡通公司的单点登录集成(我们的产品使用Java编写,对方的程序使用.Net编写)其中有一项参数是时间戳。即当前时间相对于公元1970-1-1 00:00:00的秒数。按照他们给出的文档我完成了Java部分的编写,时间戳部分很简单,一句话:

复制代码 代码如下:

    private String createTimestamp() //timestamp
    {
        return System.currentTimeMillis() / 1000 + "";
    }

使用System.currentTimeMillis()方法就能得到自1970年1月1日0时0分0秒的毫秒数,除以1000自然是秒数。但是意外却发生了,我产生的时间戳跟他们公司产生的时间戳差了一大截,查阅资料后发现.Net跟Java在处理时间上有出入。

.Net产生的时间都是当前时区的当前时间,而Java的currentTimeMillis()方法得到的却是相对于GMT来的时间。中国所在时区是+8区,故时间整整差了8小时!

所以当童鞋们再遇到.Net跟Java时间不一致的时候,多往时区方面考虑考虑,说不定就能找到解决办法了 :)

当然我会给出解决方案:

方法一:JVM运行时增加参数,指定时区 -D user.timezone=GMT+08

方法二:直接在程序中设置时区。System.setProperty(“user.timezone”,”GMT +08″);

方法三:直接加上28800就好了(8hours*60min*60sec=28800)

时间: 2024-08-30 19:07:58

Java中指定时区的3种方法_java的相关文章

Java中内存分配的几种方法_java

一.数组分配的上限 Java里数组的大小是受限制的,因为它使用的是int类型作为数组下标.这意味着你无法申请超过Integer.MAX_VALUE(2^31-1)大小的数组.这并不是说你申请内存的上限就是2G.你可以申请一个大一点的类型的数组.比如: 复制代码 代码如下: final long[] ar = new long[ Integer.MAX_VALUE ]; 这个会分配16G -8字节,如果你设置的-Xmx参数足够大的话(通常你的堆至少得保留50%以上的空间,也就是说分配16G的内存,

Java中终止线程的三种方法_java

Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 这些终止线程运行的方法已经被废弃,使用它们是极端不安全的! 1.线程正常执行完毕,正常结束 也就是让run方法执行完毕,该线程就会正常结束. 但有时候线程是永远无法结束的,比如while(true). 2.监视某些条件,结束线程的不间断运行 需要while()循环在某以特定条件下退出,最直接的办法就是设一个boolean标志,并通过设置这个标志来控制循环

js删除Array数组中指定元素的两种方法_javascript技巧

本节内容: js删除Array数组中指定元素 方法一, /* * 方法:Array.remove(dx) 通过遍历,重构数组 * 功能:删除数组元素. * 参数:dx删除元素的下标. */ Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i<this.length;i++) { if(this[i]!=this[dx]) { this[n++]=

java中pdf转图片的实现方法_java

JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用. 一.icepdf.有收费版和开源版,几种方法里最推荐的.转换的效果比较好,能识别我手头文件中的中文,就是转换后可能字体的关系部分字间距有点宽.因为,字体支持是要收费的,所以转换的图片会带有官方的水印.去水印的方法可以查看另一篇文章:icepdf去水印方法 1.下载icepdf的架包,并导入项目中,这里用到4个,如下: 2.附上代码例子: String filePath = "c:/test.pdf

JAVA中IP和整数相互转化的方法_java

本文实例讲述了JAVA中IP和整数相互转化的方法.分享给大家供大家参考.具体分析如下: 一.基本知识点 IP --> 整数: 把IP地址转化为字节数组 通过左移位(<<).与(&).或(|)这些操作转为int 整数 --> IP: 将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到的数字即为第一段IP. 将整数值进行右移位操作(>>>),右移16位,再进行与操作符(&)0xFF,得到的数字即为

Java中浮点数精度问题的解决方法_java

问题描述 在项目中用Java做浮点数计算时,发现对于4.015*100这样的计算,结果不是预料中的401.5,而是401.49999999999994.如此长的位数,对于显示来说很不友好. 问题原因:浮点数表示 查阅相关资料,发现原因是:计算机中的浮点数并不能完全精确表示.例如,对于一个double型的38414.4来说,计算机是这样存储它的: 转成二进制:1001011000001110.0110011001100110011001100110011001100 转成科 学计数法:1.0010

Java中分割字符串的两种方法实例详解_java

前言 相信大家应该都知道在java编程中,有时候我们需要把一个字符串按照某个特定字符.字母等作为截点分割这个字符串,这样我们就可以使用这个字符串的一部分或者把所有截取的内容保存到数组里等操作.下面这篇文章就给大家分享了两种分割的方法,下面来一起看看吧. 一.java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 public class StringSpl

java中遍历List的几种方法

1.使用索引(index)来遍历List 2.使用Iterator来遍历List.(for-each其实也是利用Iterator) 注意:如果仅仅是遍历,那么可以可以使用索引或Iterator来遍历.但是,如果你在遍历的同时还要删除元素,则最好使用Iterator来遍历和删除元素,这样可以避免ConcurrentModificationException异常. 下面是使用for.for-each和Iterator来遍历 实例代码: import java.util.Arrays; import

详解Java中的时区类TimeZone的用法_java

一.TimeZone 简介TimeZone 表示时区偏移量,也可以计算夏令时. 在操作 Date, Calendar等表示日期/时间的对象时,经常会用到TimeZone:因为不同的时区,时间不同. 下面说说TimeZone对象的 2种常用创建方式.1.获取默认的TimeZone对象使用方法: TimeZone tz = TimeZone.getDefault() 2.使用 getTimeZone(String id) 方法获取TimeZone对象使用方法: // 获取 "GMT+08:00&qu