Android時間擷取與使用

來源:互聯網
上載者:User

Android時間擷取與使用
編寫Android網路程式時難免會遇到手機時間不準確的問題,本文總結了一些常用的時間擷取與校正方法:轉載請註明:http://blog.csdn.net/xzy20461.擷取本機目前時間:

        Time local = new Time();        local.set(System.currentTimeMillis());        mLocalTime.setText(local.format2445());

2.擷取本機時間對應的上海時間:

        Time shanghai = new Time("Asia/Shanghai");        shanghai.set(System.currentTimeMillis());        mShangHaiTime.setText(shanghai.format2445());
各位可能想瞭解類似Asia/Shanghai從哪邊可以查到,本文最後將附上尋找表。

3.擷取本機時間對應的東京時間

        Time tokyo = new Time("Asia/Tokyo");        tokyo.set(System.currentTimeMillis());        mTokyoTime.setText(tokyo.format2445());

4.擷取網路時間:

URL url = null;            try {                url = new URL("http://www.baidu.com");            } catch (MalformedURLException e) {                e.printStackTrace();            }            URLConnection uc = null;            try {                uc = url.openConnection();                uc.connect();            } catch (IOException e) {                e.printStackTrace();            }            long ld = uc.getDate();            Date date = new Date(ld);            Log.i("xzy", "Net Time is : " + date.getHours() + "時" + date.getMinutes() + "分" + date.getSeconds() + "秒");
注意網路相關方法需要做非同步處理,不能直接在UI線程中擷取。本文最後將提供一個Demo,在AsyncTaskLoader中進行網路請求。

5.通過Gps擷取目前時間:

LocationManager locMan = (LocationManager) this.getSystemService(LOCATION_SERVICE);        locMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {            @Override            public void onLocationChanged(Location location) {                long time = location.getTime();                Date date = new Date(time);                mGpsTime.setText(date.toString());            }            @Override            public void onStatusChanged(String provider, int status, Bundle extras) {            }            @Override            public void onProviderEnabled(String provider) {            }            @Override            public void onProviderDisabled(String provider) {            }        });

6.計算手機當前時區和北京時區的差值:

Date date = new Date();

long timezoneDiff = TimeZone.getDefault().getOffset(date.getTime()) - TimeZone                .getTimeZone("GMT+8").getOffset(date.getTime());

通過這個差值和之前我們擷取網路時間,可以計算出本機時間和網路時間的差值。對時間進行轉換,解決一系列的時間錯誤問題。

7.附國家縮寫和時區名稱對照表:
    //主要城市,國家對應表    String[] world = new String[]{            "ad", "Europe/Andorra",            "ae", "Asia/Dubai",            "af", "Asia/Kabul",            "ag", "America/Antigua",            "ai", "America/Anguilla",            "al", "Europe/Tirane",            "am", "Asia/Yerevan",            "an", "America/Curacao",            "ao", "Africa/Luanda",            "aq", "Antarctica/McMurdo",            "aq", "Antarctica/DumontDUrville",            "aq", "Antarctica/Casey",            "aq", "Antarctica/Davis",            "aq", "Antarctica/Mawson",            "aq", "Antarctica/Syowa",            "aq", "Antarctica/Rothera",            "aq", "Antarctica/Palmer",            "ar", "America/Argentina/Buenos_Aires",            "as", "Pacific/Pago_Pago",            "at", "Europe/Vienna",            "au", "Australia/Sydney",            "au", "Australia/Adelaide",            "au", "Australia/Perth",            "au", "Australia/Eucla",            "aw", "America/Aruba",            "ax", "Europe/Mariehamn",            "az", "Asia/Baku",            "ba", "Europe/Sarajevo",            "bb", "America/Barbados",            "bd", "Asia/Dhaka",            "be", "Europe/Brussels",            "bf", "Africa/Ouagadougou",            "bg", "Europe/Sofia",            "bh", "Asia/Bahrain",            "bi", "Africa/Bujumbura",            "bj", "Africa/Porto-Novo",            "bm", "Atlantic/Bermuda",            "bn", "Asia/Brunei",            "bo", "America/La_Paz",            "br", "America/Noronha",            "br", "America/Sao_Paulo",            "br", "America/Manaus",            "bs", "America/Nassau",            "bt", "Asia/Thimphu",            "bw", "Africa/Gaborone",            "by", "Europe/Minsk",            "bz", "America/Belize",            "ca", "America/St_Johns",            "ca", "America/Halifax",            "ca", "America/Toronto",            "ca", "America/Winnipeg",            "ca", "America/Edmonton",            "ca", "America/Vancouver",            "cc", "Indian/Cocos",            "cd", "Africa/Lubumbashi",            "cd", "Africa/Kinshasa",            "cf", "Africa/Bangui",            "cg", "Africa/Brazzaville",            "ch", "Europe/Zurich",            "ci", "Africa/Abidjan",            "ck", "Pacific/Rarotonga",            "cl", "America/Santiago",            "cl", "Pacific/Easter",            "cm", "Africa/Douala",            "cn", "Asia/Shanghai",            "co", "America/Bogota",            "cr", "America/Costa_Rica",            "cu", "America/Havana",            "cv", "Atlantic/Cape_Verde",            "cx", "Indian/Christmas",            "cy", "Asia/Nicosia",            "cz", "Europe/Prague",            "de", "Europe/Berlin",            "dj", "Africa/Djibouti",            "dk", "Europe/Copenhagen",            "dm", "America/Dominica",            "do", "America/Santo_Domingo",            "dz", "Africa/Algiers",            "ec", "America/Guayaquil",            "ec", "Pacific/Galapagos",            "ee", "Europe/Tallinn",            "eg", "Africa/Cairo",            "eh", "Africa/El_Aaiun",            "er", "Africa/Asmara",            "es", "Europe/Madrid",            "es", "Atlantic/Canary",            "et", "Africa/Addis_Ababa",            "fi", "Europe/Helsinki",            "fj", "Pacific/Fiji",            "fk", "Atlantic/Stanley",            "fm", "Pacific/Ponape",            "fm", "Pacific/Truk",            "fo", "Atlantic/Faroe",            "fr", "Europe/Paris",            "ga", "Africa/Libreville",            "gb", "Europe/London",            "gd", "America/Grenada",            "ge", "Asia/Tbilisi",            "gf", "America/Cayenne",            "gg", "Europe/Guernsey",            "gh", "Africa/Accra",            "gi", "Europe/Gibraltar",            "gl", "America/Danmarkshavn",            "gl", "America/Scoresbysund",            "gl", "America/Godthab",            "gl", "America/Thule",            "gm", "Africa/Banjul",            "gn", "Africa/Conakry",            "gp", "America/Guadeloupe",            "gq", "Africa/Malabo",            "gr", "Europe/Athens",            "gs", "Atlantic/South_Georgia",            "gt", "America/Guatemala",            "gu", "Pacific/Guam",            "gw", "Africa/Bissau",            "gy", "America/Guyana",            "hk", "Asia/Hong_Kong",            "hn", "America/Tegucigalpa",            "hr", "Europe/Zagreb",            "ht", "America/Port-au-Prince",            "hu", "Europe/Budapest",            "id", "Asia/Jayapura",            "id", "Asia/Makassar",            "id", "Asia/Jakarta",            "ie", "Europe/Dublin",            "il", "Asia/Jerusalem",            "im", "Europe/Isle_of_Man",            "in", "Asia/Calcutta",            "io", "Indian/Chagos",            "iq", "Asia/Baghdad",            "ir", "Asia/Tehran",            "is", "Atlantic/Reykjavik",            "it", "Europe/Rome",            "je", "Europe/Jersey",            "jm", "America/Jamaica",            "jo", "Asia/Amman",            "jp", "Asia/Tokyo",            "ke", "Africa/Nairobi",            "kg", "Asia/Bishkek",            "kh", "Asia/Phnom_Penh",            "ki", "Pacific/Kiritimati",            "ki", "Pacific/Enderbury",            "ki", "Pacific/Tarawa",            "km", "Indian/Comoro",            "kn", "America/St_Kitts",            "kp", "Asia/Pyongyang",            "kr", "Asia/Seoul",            "kw", "Asia/Kuwait",            "ky", "America/Cayman",            "kz", "Asia/Almaty",            "kz", "Asia/Aqtau",            "la", "Asia/Vientiane",            "lb", "Asia/Beirut",            "lc", "America/St_Lucia",            "li", "Europe/Vaduz",            "lk", "Asia/Colombo",            "lr", "Africa/Monrovia",            "ls", "Africa/Maseru",            "lt", "Europe/Vilnius",            "lu", "Europe/Luxembourg",            "lv", "Europe/Riga",            "ly", "Africa/Tripoli",            "ma", "Africa/Casablanca",            "mc", "Europe/Monaco",            "md", "Europe/Chisinau",            "me", "Europe/Podgorica",            "mg", "Indian/Antananarivo",            "mh", "Pacific/Majuro",            "mk", "Europe/Skopje",            "ml", "Africa/Bamako",            "mm", "Asia/Rangoon",            "mn", "Asia/Choibalsan",            "mn", "Asia/Hovd",            "mo", "Asia/Macau",            "mp", "Pacific/Saipan",            "mq", "America/Martinique",            "mr", "Africa/Nouakchott",            "ms", "America/Montserrat",            "mt", "Europe/Malta",            "mu", "Indian/Mauritius",            "mv", "Indian/Maldives",            "mw", "Africa/Blantyre",            "mx", "America/Mexico_City",            "mx", "America/Chihuahua",            "mx", "America/Tijuana",            "my", "Asia/Kuala_Lumpur",            "mz", "Africa/Maputo",            "na", "Africa/Windhoek",            "nc", "Pacific/Noumea",            "ne", "Africa/Niamey",            "nf", "Pacific/Norfolk",            "ng", "Africa/Lagos",            "ni", "America/Managua",            "nl", "Europe/Amsterdam",            "no", "Europe/Oslo",            "np", "Asia/Katmandu",            "nr", "Pacific/Nauru",            "nu", "Pacific/Niue",            "nz", "Pacific/Auckland",            "nz", "Pacific/Chatham",            "om", "Asia/Muscat",            "pa", "America/Panama",            "pe", "America/Lima",            "pf", "Pacific/Gambier",            "pf", "Pacific/Marquesas",            "pf", "Pacific/Tahiti",            "pg", "Pacific/Port_Moresby",            "ph", "Asia/Manila",            "pk", "Asia/Karachi",            "pl", "Europe/Warsaw",            "pm", "America/Miquelon",            "pn", "Pacific/Pitcairn",            "pr", "America/Puerto_Rico",            "ps", "Asia/Gaza",            "pt", "Europe/Lisbon",            "pt", "Atlantic/Azores",            "pw", "Pacific/Palau",            "py", "America/Asuncion",            "qa", "Asia/Qatar",            "re", "Indian/Reunion",            "ro", "Europe/Bucharest",            "rs", "Europe/Belgrade",            "ru", "Asia/Kamchatka",            "ru", "Asia/Magadan",            "ru", "Asia/Vladivostok",            "ru", "Asia/Yakutsk",            "ru", "Asia/Irkutsk",            "ru", "Asia/Krasnoyarsk",            "ru", "Asia/Novosibirsk",            "ru", "Asia/Yekaterinburg",            "ru", "Europe/Samara",            "ru", "Europe/Moscow",            "ru", "Europe/Kaliningrad",            "rw", "Africa/Kigali",            "sa", "Asia/Riyadh",            "sb", "Pacific/Guadalcanal",            "sc", "Indian/Mahe",            "sd", "Africa/Khartoum",            "se", "Europe/Stockholm",            "sg", "Asia/Singapore",            "sh", "Atlantic/St_Helena",            "si", "Europe/Ljubljana",            "sj", "Arctic/Longyearbyen",            "sk", "Europe/Bratislava",            "sl", "Africa/Freetown",            "sm", "Europe/San_Marino",            "sn", "Africa/Dakar",            "so", "Africa/Mogadishu",            "sr", "America/Paramaribo",            "st", "Africa/Sao_Tome",            "sv", "America/El_Salvador",            "sy", "Asia/Damascus",            "sz", "Africa/Mbabane",            "tc", "America/Grand_Turk",            "td", "Africa/Ndjamena",            "tf", "Indian/Kerguelen",            "tg", "Africa/Lome",            "th", "Asia/Bangkok",            "tj", "Asia/Dushanbe",            "tk", "Pacific/Fakaofo",            "tl", "Asia/Dili",            "tm", "Asia/Ashgabat",            "tn", "Africa/Tunis",            "to", "Pacific/Tongatapu",            "tr", "Europe/Istanbul",            "tt", "America/Port_of_Spain",            "tv", "Pacific/Funafuti",            "tw", "Asia/Taipei",            "tz", "Africa/Dar_es_Salaam",            "ua", "Europe/Kiev",            "ug", "Africa/Kampala",            "um", "Pacific/Wake",            "um", "Pacific/Johnston",            "um", "Pacific/Midway",            "us", "America/New_York",            "us", "America/Chicago",            "us", "America/Denver",            "us", "America/Los_Angeles",            "us", "America/Anchorage",            "us", "Pacific/Honolulu",            "uy", "America/Montevideo",            "uz", "Asia/Tashkent",            "va", "Europe/Vatican",            "vc", "America/St_Vincent",            "ve", "America/Caracas",            "vg", "America/Tortola",            "vi", "America/St_Thomas",            "vn", "Asia/Saigon",            "vu", "Pacific/Efate",            "wf", "Pacific/Wallis",            "ws", "Pacific/Apia",            "ye", "Asia/Aden",            "yt", "Indian/Mayotte",            "za", "Africa/Johannesburg",            "zm", "Africa/Lusaka",            "zw", "Africa/Harare",    };

測試程式:
http://download.csdn.net/detail/xzy2046/8161511

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.