How to get the current time in GMT?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How can I get the current date and time in UTC or GMT in Java?
我想获得格林威治标准时间的当前时间戳; 任何想法如何做到这一点?
我设法获得gmt格式的字符串
问题是我想将此字符串转换为等效的时间戳对象,即同时但作为时间戳对象
1 2 3 4 5 6 | SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); Date date=new Date(); String s=sdf.format(date); System.out.println("GMT:"+s); //need to convert the string to equivalent timestamp object |
1 |
要不就
1 |
两者都假设您将"timestamp"表示"Unix时代的毫秒数"。否则,请澄清您的问题。
编辑:回应评论/澄清/"回答":
您误解了存储GMT时间戳与显示GMT时间戳之间的区别。日期/时间戳将在内部以UTC时间的毫秒存储,并且与某个时区无关,因为无论您的时区如何,时间戳都相同。如果是格林威治标准时间晚上10点在檀香山,那也是格林威治标准时间晚上10点在纽约。它们具有相同的时间戳,但您的位置可能会使它们以不同方式呈现。
另一方面,日历用于正确显示某些字段(如6月8日下午6点),因此具有TimeZone的内部概念(因为美国东部时间下午6点与PDT下午6点不同)。
无论如何,你的例子给了一个SimpleDateFormat。如果要在GMT中显示已经GMT时间戳,请执行相同操作并传入时间戳。
1 2 3 4 | Timestamp timestamp = new Timestamp(System.currentTimeMillis()); SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss.SS"); fmt.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(fmt.format(timestamp)); |
1 |
...因为所有Date对象都是基于GMT的。