<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    I'm happy to live!

    Develop with pleasure!

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      39 隨筆 :: 2 文章 :: 31 評(píng)論 :: 0 Trackbacks
        在我的項(xiàng)目中,用戶會(huì)選擇自已的時(shí)區(qū),所以顯示的時(shí)間都是根據(jù)用戶選擇的時(shí)區(qū)來(lái)顯示時(shí)間的,而時(shí)間我存入數(shù)據(jù)庫(kù)時(shí)我打算是轉(zhuǎn)成格林威治時(shí)間,然后從庫(kù)里取出時(shí)間后又根據(jù)用戶的選擇來(lái)轉(zhuǎn)成對(duì)應(yīng)時(shí)區(qū)的時(shí)間
    但現(xiàn)在卻碰到一些問(wèn)題,如何將對(duì)應(yīng)時(shí)區(qū)的時(shí)間轉(zhuǎn)成格林威治時(shí)間呢?

    以下是我的部分代碼:
    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又成了當(dāng)前系統(tǒng)的時(shí)間了啊,我如何把當(dāng)前用戶時(shí)區(qū)的時(shí)間轉(zhuǎn)換成格林威治時(shí)間呢,謝謝牛人們?
    posted on 2011-01-05 07:31 Norsor 閱讀(1695) 評(píng)論(3)  編輯  收藏 所屬分類: programme

    評(píng)論

    # re: 關(guān)于時(shí)間的一些疑問(wèn)? 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中找到的。  回復(fù)  更多評(píng)論
      

    # re: 關(guān)于時(shí)間的一些疑問(wèn)? 2011-01-05 20:59 Rene
    因?yàn)槟阒挥昧艘粋€(gè)DateFormat,等于是在同一個(gè)時(shí)區(qū)內(nèi)轉(zhuǎn)換。

    format: 把Date對(duì)象基于DateFormat時(shí)區(qū)轉(zhuǎn)換成字符串
    parse: 把字符串基于DateFormat時(shí)區(qū)轉(zhuǎn)換成當(dāng)前時(shí)區(qū)的Date對(duì)象
    比如:用戶地區(qū)為中國(guó)(GMT+8),DateFormat時(shí)區(qū)為GMT,時(shí)間字符串:2011/01/05 12:00:00
    parse后的結(jié)果是 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);
    可以獲得當(dāng)前時(shí)間的GMT時(shí)區(qū)日期字符串。
    如果要獲得Date對(duì)象,要基于用戶時(shí)區(qū)做parse轉(zhuǎn)換

    完整例子:
    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));
    }
    }  回復(fù)  更多評(píng)論
      

    # re: 關(guān)于時(shí)間的一些疑問(wèn)? 2011-01-05 21:07 Rene
    @何楊
    建議使用"GMT",用London的話有夏令時(shí)問(wèn)題,夏令時(shí)期間就是GMT+1了  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲av日韩av不卡在线观看 | 久久精品网站免费观看| 亚洲午夜电影在线观看高清| 尤物永久免费AV无码网站| 99热在线日韩精品免费| 亚洲一区二区三区国产精华液| 亚洲视频一区二区| 国内精自视频品线六区免费| 免费国产黄网站在线观看动图 | 久久亚洲私人国产精品vA| 国产美女无遮挡免费视频| 国内精品免费在线观看| 亚洲AV日韩AV永久无码色欲| 亚洲国产精品无码AAA片| 手机看片久久国产免费| 久久午夜伦鲁片免费无码| 日本永久免费a∨在线视频| 亚洲成人免费电影| 亚洲永久无码3D动漫一区| 成人性生交大片免费看无遮挡| 久久精品免费网站网| 亚洲国产欧洲综合997久久| 亚洲一级二级三级不卡| 亚洲情a成黄在线观看| 成人最新午夜免费视频| 91香蕉国产线在线观看免费| www免费黄色网| 亚洲黄页网在线观看| 久久久无码精品亚洲日韩按摩| 亚洲国产激情一区二区三区| 免费观看AV片在线播放| 国产精品99久久免费观看| 一级成人生活片免费看| 亚洲国产欧美一区二区三区| 亚洲乱码在线卡一卡二卡新区| 亚洲黄色在线观看视频| 久久亚洲国产成人亚| 亚洲开心婷婷中文字幕| 亚洲国产精品综合久久网络| 精品国产一区二区三区免费看| 无人在线观看免费高清视频|