步骤如下:
布局文件:
<TextView
android:id="@+id/date"
android:layout_width="60dp"
android:layout_height="40dp"
android:gravity="center|right"
android:layout_marginRight="10dp"
android:textSize="10sp"
android:textColor="#0000FF"
app:layout_constraintRight_toRightOf="@+id/tv1"
app:layout_constraintTop_toTopOf="@+id/tv1"/>
<TextView
android:id="@+id/time"
android:layout_width="60dp"
android:layout_height="25dp"
android:gravity="center|right"
android:textSize="10sp"
android:textColor="#FF0000"
app:layout_constraintRight_toRightOf="@+id/date"
app:layout_constraintTop_toBottomOf="@+id/date"/>
贴代码: 以下代码均写在MainActivity里
private TextView date;
private TextView time;
private static final int msgKey1=1;
date=(TextView) findViewById(R.id.date);
time=(TextView) findViewById(R.id.time);
new TimeThread().start();
public class TimeThread extends Thread{
@Override
public void run(){
do {
try {
Thread.sleep(1000);
Message message=new Message();
message.what=msgKey1;
mHandler.sendMessage(message);
}
catch (InterruptedException e){
e.printStackTrace();
}
} while (true);
}
}
private Handler mHandler=new Handler(){
@Override
public void handleMessage (Message message){
super.handleMessage(message);
switch (message.what){
case msgKey1:
date.setText(getDate());
time.setText(getTime());
break;
default:
break;
}
}
};
public String getDate(){
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));// 获取当前月份的日期号码
return mDay + "/" + mMonth + "/" + mYear;
}
public String getTime(){
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
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));//秒
String mApm=String.valueOf(c.get(Calendar.AM_PM));//上午/下午
String am_pm;
if (c.get(Calendar.AM_PM)==0)
am_pm="AM";
else
am_pm="PM";
return mHour+":"+mMinute+":"+mSecond+" "+am_pm;
}
效果如下:
拓展: 以下为静态获取系统时间,即为运行一次更新一次系统时间,仅供了解,不实用,动态获取更实用
布局文件:
<TextView
android:id="@+id/date"
android:layout_width="60dp"
android:layout_height="40dp"
android:gravity="center|right"
android:layout_marginRight="10dp"
android:textSize="10sp"
android:textColor="#0000FF"
app:layout_constraintRight_toRightOf="@+id/tv1"
app:layout_constraintTop_toTopOf="@+id/tv1"/>
<TextView
android:id="@+id/time"
android:layout_width="60dp"
android:layout_height="25dp"
android:gravity="center|right"
android:textSize="10sp"
android:textColor="#FF0000"
app:layout_constraintRight_toRightOf="@+id/date"
app:layout_constraintTop_toBottomOf="@+id/date"/>
Java文件:
private TextView date;
private TextView time;
private static final int msgKey1=1;
date=(TextView) findViewById(R.id.date);
time=(TextView) findViewById(R.id.time);
new TimeThread().start();
Calendar calendar = Calendar.getInstance();
//获取系统的日期
//年
int year = calendar.get(Calendar.YEAR);
//月
int month = calendar.get(Calendar.MONTH)+1;
//日
int day = calendar.get(Calendar.DAY_OF_MONTH);
//获取系统时间
//小时
int hour = calendar.get(Calendar.HOUR_OF_DAY);
//分钟
int minute = calendar.get(Calendar.MINUTE);
//秒
int second = calendar.get(Calendar.SECOND);
date.setText(day+"/"+month+"/"+year);
time.setText(hour+":"+minute+":"+second+" PM");