pythontojava 2015-08-19 00:21 采纳率: 100%
浏览 3528
已采纳

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显示却不一样。

  • 写回答

2条回答 默认 最新

  • 暖枫无敌 博客专家认证 2015-08-19 06:27
    关注
      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");
    

    祝你好运!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?