始终打开的应用程序,显示当前日期和时间

时间:2020-02-26 10:18:58

标签: android date calendar

我正在制作一个将始终在平板电脑中打开的应用程序。我正在尝试实时显示当前日期和时间。现在,我使用下面的代码

<DigitalClock
        android:id="@+id/digitalClock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintTop_toBottomOf="@+id/date"
        tools:layout_editor_absoluteX="0dp" />

它运行完美。该应用程序始终处于打开状态,并且时间实时变化 (尽管我现在正在搜索如何添加秒)

对于日期,我使用了该代码

dateTimeDisplay = (TextView)findViewById(R.id.date);
calendar = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd MMMM, yyyy");
date = dateFormat.format(calendar.getInstance().getTime());
dateTimeDisplay.setText(date);

但是它显示当前日期,而不是实时的。仅当我打开应用程序时,它才会更改。

我可以知道,因为我在dateFormat中添加了几秒钟来测试它,它是静态的。

SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd MMMM, yyyy , ss");

有人有什么想法吗?谢谢!!

1 个答案:

答案 0 :(得分:1)

DigitalClock已过时,建议您改用TextClock

TextClock将在默认情况下完成您的工作。查看下面的示例

<TextClock
        android:id="@+id/textClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:format12Hour="hh:mm:ss a"
        android:textColor="#F1511B"
        android:textSize="45dp"
        android:textStyle="bold" />

对于24小时格式,请使用

android:format24Hour="hh:mm:ss a

Improvement note: 而不是使用SimpleDateFormat和帮助器类,而应将ThreeTenABP用作OleV.V。在评论中指出。这是How to use ThreeTenABP in Android Project