java 字符串转utc时间_在Java中将UTC时间转换为本地时区

我知道这个主题已被殴打致死,但在搜寻了这个问题几个小时之后,我不得不问。

我的问题:根据客户端应用程序(iphone)的当前时区对服务器上的日期进行计算。客户端应用程序以秒为单位告诉服务器,其时区距GMT的距离。然后,我想使用此信息对服务器中的日期进行计算。服务器上的日期都存储为UTC时间。

因此,在将UTC日期对象转换为该本地时区之后,我想获取其HOUR。

我目前的尝试:

int hours = (int) Math.floor(secondsFromGMT / (60.0 * 60.0));

int mins = (int) Math.floor((secondsFromGMT - (hours * 60.0 * 60.0)) / 60.0);

String sign = hours > 0 ? "+" : "-";

Calendar now = Calendar.getInstance();

TimeZone t = TimeZone.getTimeZone("GMT" + sign + hours + ":" + mins);

now.setTimeZone(t);

now.setTime(someDateTimeObject);

int hourOfDay = now.get(Calendar.HOUR_OF_DAY);

变量小时和分钟表示本地时区离格林尼治标准时间的小时和分钟。调试该代码后,小时,分钟和符号变量正确。

问题是hourOfDay没有返回正确的小时-它返回的时间是UTC时间而非本地时间。有想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值