`
jythoner
  • 浏览: 602096 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java每日一题11

阅读更多
根据一个TimeZone的时间,比如一个“Africa/Accra”的字符串来生成TimeZone,然后将一个Date转换成这个TimeZone的时间

package test70;

import java.text.DateFormat;
import java.util.Date;
import java.util.TimeZone;

public class TimeTest {

	public static void main(String[] args) {
		String tzId = "America/Los_Angeles";
		//String tzId = TimeZone.getDefault().getID();
		TimeZone tz = TimeZone.getTimeZone(tzId);
		DateFormat df = DateFormat.getInstance();
		df.setTimeZone(tz);
		String date = df.format(new Date());
		System.out.println(date);

	}

}


或者
package test70;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class TimeZoneTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Calendar c = new GregorianCalendar(TimeZone
				.getTimeZone("America/Los_Angeles"));
		System.out.println(c.getTime());
	}

}


8
1
分享到:
评论
6 楼 zhang_ly520 2009-02-19  
试了一下toGMTString() 也不行,虽然结果不依赖于本地时区,但是也不是自己指定的那个时区,看来只能用DateFormat了
5 楼 zhang_ly520 2009-02-19  
c.getTime().toGMTString()

已过时。 从 JDK 1.1 开始,由 DateFormat.format(Date date) 取代,使用 GMT TimeZone。

创建此 Date 对象的字符串表示形式,如下: d mon yyyy hh:mm:ss GMT
其中:
d 是一月中的某一天(1 至 31),显示为一位或两位十进制数。
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
yyyy 是年份,显示为 4 位十进制数。
hh 是一天中的小时(00 至 23),显示为两位进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 分钟中的秒数(00 至 61),显示为两位十进制数。
GMT 就是 ASCII 字母 "GMT",代表格林威治标准时 (Greenwich Mean Time)。
结果不依赖于本地时区。


返回:
此日期的字符串表示形式(使用 Internet GMT 约定)。

所以现在都有第一种方法了。
4 楼 jiayouyx 2009-02-19  
郁闷。。。。真的啊,我试了。输出还是我本机机器上的时间啊。

有没有比较好的办法没,可以输出时区或者国家的????
3 楼 jythoner 2009-02-17  
Jiessie.F 写道

第二段代码输出的还是当前电脑的时间...

第二个确实错了。。。。是我的失误,应该怎么改?谁知道?

2 楼 Jiessie.F 2009-02-17  
第二段代码输出的还是当前电脑的时间...
1 楼 dandy 2009-02-17  
学习and顶!

相关推荐

Global site tag (gtag.js) - Google Analytics