Android动态显示系统时间,附获得当前年月日星期时分秒方法,一步到位

在布局文件中放一个TextView用来显示时间,如下所示:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@android:color/white">
   <TextView
       android:id="@+id/mytime"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:gravity="center"
       android:textColor="@android:color/black"
       android:textSize="36sp"/>
 </LinearLayout>

开启一个线程,然后通过handler发消息,来实时的更新TextView上显示的系统时间:

 import android.app.Activity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.text.format.DateFormat;
 import android.widget.TextView;
 
 public class TestActivity extends Activity {
     
     private static final int msgKey1 = 1;
     private TextView mTime;
     
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.time);
         mTime = (TextView) findViewById(R.id.mytime);
         new TimeThread().start();
     }
     
     public class TimeThread extends Thread {
         @Override
         public void run () {
             do {
                 try {
                     Thread.sleep(1000);
                     Message msg = new Message();
                     msg.what = msgKey1;
                     mHandler.sendMessage(msg);
                 }
                 catch (InterruptedException e) {
                     e.printStackTrace();
                 }
             } while(true);
         }
     }
     
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage (Message msg) {
             super.handleMessage(msg);
             switch (msg.what) {
                 case msgKey1:
                     mTime.setText(getTime());
                     break;
                 default:
                     break;
             }
         }
     };
     //获得当前年月日时分秒星期
     public String getTime(){
        final Calendar c = Calendar.getInstance();
        c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        String mYear = String.valueOf(c.get(Calendar.YEAR)); // 获取当前年份
        String mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 获取当前月份
        String mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份的日期号码
        String mWay = String.valueOf(c.get(Calendar.DAY_OF_WEEK));
        String mHour = String.valueOf(c.get(Calendar.HOUR_OF_DAY));//时
        String mMinute = String.valueOf(c.get(Calendar.MINUTE));//分
        String mSecond = String.valueOf(c.get(Calendar.SECOND));//秒

        if("1".equals(mWay)){
            mWay ="天";
        }else if("2".equals(mWay)){
            mWay ="一";
        }else if("3".equals(mWay)){
            mWay ="二";
        }else if("4".equals(mWay)){
            mWay ="三";
        }else if("5".equals(mWay)){
            mWay ="四";
        }else if("6".equals(mWay)){
            mWay ="五";
        }else if("7".equals(mWay)){
            mWay ="六";
        }
        return mYear + "年" + mMonth + "月" + mDay+"日"+"  "+"星期"+mWay+"  "+mHour+":"+mMinute+":"+mSecond;
    }

 }




  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值