如何在Android中从日期获得毫秒

qgelzfjb  于 2023-03-16  发布在  Android
关注(0)|答案(2)|浏览(299)

正如标题所示,我想从一个特定的日期得到毫秒,这是我正在使用的解决方案。2如果你知道有更好的方法,请提出建议。

为什么需要毫秒?

对于我的用例,它是在Android DatePickerDialog框中限制开始和结束时间段的选择。

  1. dpd.datePicker.maxDate(其中dpd是我创建的DatePickerDialog的对象)maxDate文档
  2. dpd.datePicker.maxDate最小日期文档
    这些值以毫秒为单位(长格式),并相应地限制DatePickerDialogue框的最大/最小日期。

如何获取特定日期的毫秒数?

(我会把这个作为答案)
首先,我创建了一个Calander示例,以获取所需的限制日期。

val c1 = Calendar.getInstance()
        // This will set the max date of the calendar, as the last day of the previous month rather than the current date (default)
        c.set(Calendar.DAY_OF_MONTH, 0)

        val c2 = Calendar.getInstance()
        // This will set the min year as 10 years before from today.
        c2.add(Calendar.YEAR, -10)

但现在我需要得到这些特定日期的毫秒数。

yzckvree

yzckvree1#

您可以从日历示例中获取毫秒数,如下所示:-

val c1 = Calendar.getInstance()

    c.set(Calendar.DAY_OF_MONTH, 0)
    val c2 = Calendar.getInstance()
    c2.add(Calendar.YEAR, -10)

    val startTime: Long = c2.getTimeInMillis()
fwzugrvs

fwzugrvs2#

解决方案:

将日历示例日期转换为毫秒。

(c1.time).time
(c2.time).time

所以现在可以将极限设为

dpd.datePicker.maxDate = (c1.time).time
dpd.datePicker.minDate = (c2.time).time

说明:

在日历示例c1/c2中,第一个.timeCalendar.getTime()文档的“* 属性访问语法 *”)将返回eg格式Tue Mar 14 10:20:30 UTC 2023Date对象。
现在第二个.time(即使看起来一样)是Date.getTime()文档的一个 * 属性访问语法 *。这个.time接受一个Date对象(这里由第一个.time传递)并返回该特定日期的“从纪元开始的毫秒数”。
因此,我们可以使用.time.time.time来获得任何特定日期的历元的毫秒数,这取决于您必须传递的内容。

相关问题