java-Android Studio获取GMT+8时间出错?

问题描述

Android Studio获取GMT+8时间出错?
 package com.example.thread;

import java.util.Timer;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.format.Time;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.text.format.DateFormat;
//import java.util.Timer;
import android.text.format.Time;
import android.widget.TextView;

public class MainActivity extends Activity
{
    public TextView time_text;
    public String text2="9";
    public int year,month,date,hour,minute,second;
    public Handler mHandler=new Handler();
    Time t=new Time("GMT+8"); // or Time t=new Time("GMT+8"); 加上Time Zone资料。
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        time_text=(TextView)findViewById(R.id.time_text);
        time_text.setTextColor(Color.WHITE);
        //Time t=new Time("GMT+8"); // or Time t=new Time("GMT+8"); 加上Time Zone资料。
        mHandler.post(new Runnable() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                t.setToNow(); // 取得系统时间。
                year = t.year;//年
                month = t.month;//月
                date = t.monthDay;//日
                hour = t.hour; //小时
                minute = t.minute;//分钟
                second = t.second;//秒
                //输出当前时间 时分秒
                time_text.setText(String.valueOf("  " + hour + ":" + minute + ":" + second));
                mHandler.postDelayed(this, 1000);
            }
        });
    }
}


我想要显示东八区时间,可是app却显示中时区时间,怎么回事?
我是在android4.1.2版本手机上运行app的。我的手机系统自带的时间显示是东八区时间,app显示却不一样。

解决方案

  public static String getLocalDatetimeString(String local) {

        Calendar cal = new GregorianCalendar(TimeZone.getTimeZone(local));

        cal.setTimeInMillis(Calendar.getInstance().getTimeInMillis());

        String date = cal.get(Calendar.YEAR) +"-"+ (cal.get(Calendar.MONTH) + 1) +"-"+ cal.get(Calendar.DAY_OF_MONTH);

        String time = cal.get(Calendar.HOUR_OF_DAY) +":"+ cal.get(Calendar.MINUTE) +":"+ cal.get(Calendar.SECOND);

        return date +""+ time;
}

然后这样调用

 getLocalDatetimeString("GMT+8");

祝你好运!

解决方案二:

获取GMT8时间
本地时间(北京时间)和“GMT+8”时区时间的区别?

解决方案三:

楼上暖枫无敌说的有道理。

public class MainActivity extends Activity
{
    public TextView time_text;
    public Handler mHandler=new Handler();
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        time_text=(TextView)findViewById(R.id.time_text);
        time_text.setText(getLocalDatetimeString("GMT+8"));
        time_text.setTextColor(Color.WHITE);
        time_text.setText("  " + getLocalDatetimeString("GMT+8"));//显示时间
    }
    public static String getLocalDatetimeString(String local) {
        Calendar cal = new GregorianCalendar(TimeZone.getTimeZone(local));
        cal.setTimeInMillis(Calendar.getInstance().getTimeInMillis());
        String date = cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + cal.get(Calendar.DAY_OF_MONTH);
        String time = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND);
        return date + " " + time;
    }
}

这样就能显示当前时间了。

时间: 2024-10-31 08:51:52

java-Android Studio获取GMT+8时间出错?的相关文章

android studio 获取cookie

问题描述 android studio 获取cookie 最近一段时间开始使用android stuido 公司接口一直都有要获取cookie 进行登录 .然而 /* * 获取cookie值 */ public void getCookie(Context mContext) { DefaultHttpClient defaultHttpClient = (DefaultHttpClient) getHttpClient(); List<Cookie> cookies = defaultHtt

Android Studio获取SHA1值实例详解

Android Studio获取SHA1值实例详解 前言 使用百度地图的小伙伴们都会知道获取百度地图的密钥需要SHA1和包名,在Eclipse中,我们可以很方便的得知SHA1值,如下图: 但是在Android Studio中,该怎么获取SHA1的值呢?不要着急,马上呈上~ Android Studio获取SHA1值 强大的Android Studio为我们提供了Terminal这个工具,我们可以通过他进行相应命令从而获取所需内容. Java中提供了Keytool工具去让我们管理证书,那么接下来我

android studio 导入本地gradle包出错

问题描述 android studio 导入本地gradle包出错 网上的方法用了好几个,一直无法解决问题,配置了GRADLE-HOME,Path.就是会报以下错误.希望大神指点一二.是windows8.1系统. 解决方案 我也遇到过这个问题,但也没解决,最终将studio卸载了,重新安装了一下studio和gradle

android studio 问题-android studio导入新目后出错

问题描述 android studio导入新目后出错 Error:Cause: failed to find target with hash string 'android-21' in: E:wcxAndroidsdkOpen Android SDK Manager 解决方案 sdk目录下的platform文件夹下有android-21吗 解决方案二: 不同的按钮 设置 不同的点击事件监听就好了 bt1.setonclicklistener(new onclicklistener{ ...

java-开发JAVA程序如何获取系统编译时间?

问题描述 开发JAVA程序如何获取系统编译时间? 开发JAVA程序如何获取系统编译时间?哪位大神知道的给条具体思路啊,在线坐等,谢谢! 解决方案 long start = System.currentTimeMillis();/*中间是你需要测试的代码*/long end = System.currentTimeMillis(); long time = end-start; 解决方案二: 这我猜要改编译器才可以 解决方案三: 这个问题很好解决呀!创建对象就可以了,直接new Date() 不知

Android Studio获取网络JSON数据并处理的方法

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 1.需要的网络JSON数据 2.数据实现类 package chenglong.activitytest.pengintohospital.entity; import org.json.JSONException; import org.json.JSONObject; /** * * 科室 * Created by LICHENGLONG on 2017-10-02. */ public class Bas

编码-android studio中AndroidManifest出错

问题描述 android studio中AndroidManifest出错 Manifest.xml源码如下: <?xml version="1.0" encoding="utf-8"?> package="com.example.administrator.myapplication" > <uses-permission android:name="android.permission.INTERNET&qu

Android Studio在线调试Android Framework Java代码

一.准备工作 1.下载最新的Android Studio版本 https://developer.android.com/studio/index.html 当前最新的大版本是2.2 2.下载Android系统源码 这里比较灵活,可以下载公司内部机型的代码,也可以下载原生AOSP的代码 环境配置参考 https://source.android.com/source/initializing.html 源码下载参考 https://source.android.com/source/downlo

android studio启动时出错

问题描述 android studio启动时出错 如题,刚准备打开AndroidStudio就出现问题了,好郁闷.. 解决方案 问题解决了,电脑重启后一切正常! 解决方案二: 第一次启动前,要先在它的一个文件中加上一句话.加个就可以了 这是第一次加载,它会自动检测好像,加个就没了,直接进去.具体的,时间久了,忘记了,你可以百度一下 解决方案三: 上面报的错是 没有锁定系统文件夹 你查查是什么问题 解决方案四: 如何在android studio 1.0 启动时设置代理android studio