1. 程式人生 > >Android動態顯示當前年月日時分秒系統時間

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;  
       }  
      
    }