I'm happy to live!
Develop with pleasure!
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
39 随笔 :: 2 文章 :: 31 评论 :: 0 Trackbacks
<
2011年1月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
公告
天下之事败于懒与私.
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(6)
给我留言
查看公开留言
查看私人留言
随笔分类
Diary(11)
(rss)
English 随笔
(rss)
New Concept English 2(3)
(rss)
programme(9)
(rss)
Star Craft 随笔(1)
(rss)
日常随笔(4)
(rss)
电影随笔(2)
(rss)
随笔档案
2015年12月 (1)
2015年10月 (1)
2015年7月 (1)
2015年4月 (1)
2012年11月 (1)
2011年10月 (1)
2011年1月 (2)
2010年12月 (2)
2009年11月 (2)
2009年7月 (2)
2009年5月 (1)
2008年12月 (1)
2008年10月 (1)
2005年12月 (1)
2005年11月 (21)
文章分类
English(1)
(rss)
Programme(1)
(rss)
文章档案
2005年11月 (2)
相册
My Family Album
Top Model
收藏夹
软件收藏(2)
(rss)
友情链接
English for Fun(josh)
搜索
最新评论
1. re: DIV在FF下的拖动
我也不行, 刚看你们说的, 我就在里面加个 ,,,,,凑合着先用着
--忆清风岁月
2. re: 面试
楼主写得东西还是挺实用的啊,最近好像没怎么写的样子,呵呵
--linjiang2@163.com
3. re: DIV在FF下的拖动
不清楚
--tb
4. re: DIV在FF下的拖动
评论内容较长,点击标题查看
--星期五
5. re: 关于时间的一些疑问?
@何杨
建议使用"GMT",用London的话有夏令时问题,夏令时期间就是GMT+1了
--Rene
阅读排行榜
1. ResourceBundle读取资源文件的路径问题(12333)
2. 重回Frontend!(4632)
3. Mysql 碰到的问题(3920)
4. angularjs 1.2.x 不支持动太插入ng-pattern?(2915)
5. Ajax异步返回方式处理(2167)
评论排行榜
1. HTML标记(5)
2. Ajax异步返回方式处理(5)
3. 2005年11月10日(4)
4. DIV在FF下的拖动(3)
5. 关于时间的一些疑问?(3)
关于时间的一些疑问?
在我的项目中,用户会选择自已的时区,所以显示的时间都是根据用户选择的时区来显示时间的,而时间我存入数据库时我打算是转成格林威治时间,然后从库里取出时间后又根据用户的选择来转成对应时区的时间
但现在却碰到一些问题,如何将对应时区的时间转成格林威治时间呢?
以下是我的部分代码:
DateFormat df
=
DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG);
Calendar cal
=
Calendar.getInstance();
TimeZone tz
=
TimeZone.getTimeZone(
"
America/Los_Angeles
"
);
df.setTimeZone(tz);
String time
=
df.format(
new
Date());
System.out.println(time);
Date date
=
df.parse(time,
new
ParsePosition(
0
));
System.out.println(date);
为何df.parse()后返回的date又成了当前系统的时间了啊,我如何把当前用户时区的时间转换成格林威治时间呢,谢谢牛人们?
posted on 2011-01-05 07:31
Norsor
阅读(1685)
评论(3)
编辑
收藏
所属分类:
programme
评论
#
re: 关于时间的一些疑问?
2011-01-05 11:41
何杨
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("London"));
int hour12 = cal.get(Calendar.HOUR); // 0..11
int minutes = cal.get(Calendar.MINUTE); // 0..59
int seconds = cal.get(Calendar.SECOND); // 0..59
System.out.println(hour12+":"+minutes+":"+seconds);
以上是Java Almanac 1.4中找到的。
回复
更多评论
#
re: 关于时间的一些疑问?
2011-01-05 20:59
Rene
因为你只用了一个DateFormat,等于是在同一个时区内转换。
format: 把Date对象基于DateFormat时区转换成字符串
parse: 把字符串基于DateFormat时区转换成当前时区的Date对象
比如:用户地区为中国(GMT+8),DateFormat时区为GMT,时间字符串:2011/01/05 12:00:00
parse后的结果是 Wed Jan 05 13:00:00 CET 2011
SimpleDateFormat dbFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
dbFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
dbFormat.format(localDate);
可以获得当前时间的GMT时区日期字符串。
如果要获得Date对象,要基于用户时区做parse转换
完整例子:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class CalendarTest {
public static void main (String[] args) {
SimpleDateFormat localFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
SimpleDateFormat dbFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
dbFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Date localDate = new Date();
System.out.println("Local: "+localDate);
// Solution one to get a date object
try {
Date GMTDate = localFormat.parse(dbFormat.format(localDate));
System.out.println("1. GMT: "+GMTDate);
} catch (ParseException e) {
e.printStackTrace();
}
//Solution two to get a simple String
System.out.println("2. GMT: "+dbFormat.format(localDate));
}
}
回复
更多评论
#
re: 关于时间的一些疑问?
2011-01-05 21:07
Rene
@何杨
建议使用"GMT",用London的话有夏令时问题,夏令时期间就是GMT+1了
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Mysql 碰到的问题
重回Frontend!
如何跳过iframe引用禁止
如何判断当前Locale的时间是24小时制还是12小时制度
关于时间的一些疑问?
ResourceBundle读取资源文件的路径问题
Jquery学习摘要
webwork疑问?困扰我快一个星期了,还没搞定。
I am a programmer
Powered by:
BlogJava
Copyright © Norsor