java中timezone,如何在Java中的其他TimeZone中获取当前时间?

OK - I feel pretty dumb asking such a basic question, but hey.

I'm trying to get the current time in a different timezone in a Java webapp. I've tried the following obvious solution: in my servlet,

Calendar localCalendar = Calendar.getInstance(myBean.getTimeZone());

then I pass the calendar object through to a JSP as a request attribute 'localCalendar':

It is now: [${requestScope.localCalendar.time}]

in TimeZone ${requestScope.localCalendar.timeZone.ID}

but my output seems to ignore the timezone set, i.e.

It is now: [Thu Nov 26 10:01:03 GMT 2009] in TimeZone Indian/Mahe

I'm guessing it's something to do with Locale settings, is there any way to just get the time formatted for my Locale, in another timezone?

解决方案

The internal data of Calendar is basically:

An instant in time can be represented by a millisecond value that is an offset from the Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian).

So, it holds a long that will be the same no matter what operations you use on it and toString makes no promises.

You want to format the date as per locale and timezone. You can do this in the presentation layer (the JSP) using things like JSTL or you can format the date in your bean using a DateFormat and return the value as a string.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值