MaterialDatePicker todayInUtcMilliseconds 方法返回不正确的日期

MaterialDatePicker todayInUtcMilliseconds method returning incorrect day

使用 MaterialDatePicker.todayInUtcMilliseconds() 方法创建 MaterialDatePicker 时,我们的应用程序返回的时间戳是从当前日期算起的一天。

我们用来显示 MaterialDatePicker 的简化代码如下:

val picker: MaterialDatePicker<Long> = MaterialDatePicker.Builder.datePicker()
        .setInputMode(MaterialDatePicker.INPUT_MODE_CALENDAR)
        .setSelection(MaterialDatePicker.todayInUtcMilliseconds())
        .setTitleText("Custom title")
        .build()

        picker.run {
            addOnPositiveButtonClickListener(viewModel::updateContractDate)
            show(parentActivity.supportFragmentManager, picker.toString())
        }

显示时显示的是所选的昨天日期(7 月 6 日),如下所示:

这是特别奇怪的是相同的示例代码returns 在相同的设备上正确当在Material 组件库的示例 'catalog' app.

我们正在使用最新的 Material 库版本 1.3.0-alpha01 并在 Android 10 - API 29 和 Android 8.1 - API 27. 我们还在应用程序的其他地方使用 Jake Wharton 的 ThreeTen Android Backport,但我不确定这是否相关。

如有任何帮助,我们将不胜感激!

这看起来是 bug 最新的 Material 组件库版本 1.3.0-alpha01。它已被修复,但没有放入构建中。

suggested solution是通过在顶层build.gradle文件

中使用以下内容来使用库的'daily build'
    maven {
        name = "MaterialSnapshots"
        url = uri("https://maven.pkg.github.com/material-components/material-components-android")
        credentials {
            username = <github_username>
            password = <github_access_token>
        }
    }

并使用 1.3.0-dev-20200619 版本作为依赖项

这是一个bug opened again with another bug
现在从 1.2.0-rc011.3.0-alpha02.

版本开始修复