【发布时间】:2017-11-29 16:52:13
【问题描述】:
我为我的 Android Wear 表盘创建了一个自定义 TimePicker 首选项。用户选择一个时间,它以毫秒为单位返回当前时间。这个代码可以在我的GitHub repo 上找到。
我不认为我在那堂课上所做的有什么问题——但也许我是。无论如何,然后我会像这样读取值:
final long nightModeStartTimeMillis = prefs.getLong("settings_night_mode_start_time",
Long.valueOf(getString(R.string.settings_night_mode_default_start_time)));
final long nightModeEndTimeMillis = prefs.getLong("settings_night_mode_end_time",
Long.valueOf(getString(R.string.settings_night_mode_default_end_time)));
我的问题是我想使用这些时间来确定当前时间是否在它们之间。但是,我不太清楚如何处理日期。我的defaultValue 开始时间TimePreference 是1483318830000(2017 年 1 月 1 日星期日 20:00:30 EST)。 I've been trying the code found from this answer,但在比较时,我想我永远不会让当前时间介于默认值之间,因为毫秒的日期永远不会改变——只有小时和分钟。
This is my current attempt--which doesn't work
有没有比我做的更简单的解决方法?对这一切有点困惑。
【问题讨论】:
-
参考stackoverflow.com/questions/9816459/… 了解如何从时间戳中去除日期部分。一种方式:使用日期格式“HH:mm:ss.SSS”
-
我不清楚。
getString(R.string.settings_night_mode_default_end_time)和nightModeEndTimeMillis的值是多少?你能提供一些输入和预期输出的例子吗? -
这是一个时间选择器。用户选择一个时间,我得到他们选择的时间的毫秒数。他们从不改变一天的日期——只改变小时和分钟。
R.string.settings_night_mode_default_end_time只是我以毫秒为单位的默认开始时间,1483318830000。
标签: java android datetime epoch