Android Java/kotlin 显示系统实时时间

Android 显示系统实时时间

获取系统当前时间 System.currentTimeMillis(); 需要开启一个线程,
我们通过Handler来实现 实时更新时间

效果图

在这里插入图片描述

Java实现:

  • Activity.xml代码
 <TextView
        android:id="@+id/real_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-- --"
        />
  • MainActivity代码
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        real_time=findViewById(R.id.real_time);
        Startthread();
    }
 //开启一个子线程
  private void Startthread(){
        new Thread(){
            @Override
            public void run() {
                do {
                    try {
                        Thread.sleep(1000);
                        Message message=new Message();
                        message.what=1;
                        handler.sendMessage(message);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }while (true);
            }
        }.start();
     }

//在主线程中进行数据处理
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            switch (msg.what){
                case 1:
                   //获取系统时间
                    long time = System.currentTimeMillis();
                    CharSequence format = DateFormat.format("hh:mm:ss yyyy-MM-dd", time);
                    real_time.setText(format);
                    break;
            }
        }
    };

 yyyy-MM-dd  hh:mm:ss

分别带代表: 年-月-日-时-分-秒

Kotlin 实现

    //开启一个子线程
    private fun Startthread(){
        object : Thread() {
            override fun run() {
                do {
                    sleep(1000)
                    val message= Message()
                    message.what=1
                    handler.sendMessage(message)
                }while (true)
            }
        }.start()
    }
    val handler:Handler= @SuppressLint("HandlerLeak")
    object :Handler() {
        override fun handleMessage(msg: Message) {
            super.handleMessage(msg)
            when (msg.what) {
                1 -> {
                    val time=System.currentTimeMillis()
                    val format:CharSequence= DateFormat.format("日期:"+"yyyy"+"年"+"MM"+"月"+"dd"+"日"+"hh:mm:ss"+"  "+"E", time)
                    date_time_text.text=format
                }
                else -> {
                }
            }
        }
    }
 yyyy-MM-dd  hh:mm:ss E (EEEE)

分别带代表: 年-月-日-时-分-秒-星期(周)

判断上/下午

long time = System.currentTimeMillis();
final Calendar mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(time);
int hour = mCalendar.get(Calendar.HOUR);
int apm = mCalendar.get(Calendar.AM_PM);

apm=0 表示上午,apm=1表示下午。

其他的都能根据上面的hour一样的方式找到年月日时分秒

以上是显示实时时间。[^1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AaVictory.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值