gpt4 book ai didi

android - 日历给出错误的日期和时间

转载 作者:行者123 更新时间:2023-11-29 17:49:43 24 4
gpt4 key购买 nike

这是我几天来一直面临的一个非常烦人的问题。我正在使用 Genymotion 模拟器。代码如下:

        DatePicker dp = (DatePicker) d.findViewById(R.id.datePicker1);
TimePicker tp = (TimePicker) d.findViewById(R.id.timePicker1);

Calendar.getInstance();

selectedDate = Calendar.YEAR + "/" + Calendar.MONTH + "/" + Calendar.DAY_OF_MONTH;
selectedTime = Calendar.HOUR_OF_DAY + ":" + Calendar.MINUTE;

dp.init(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, new OnDateChangedListener()
{
@Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
selectedDate = dayOfMonth + "/" + monthOfYear + 1 + "/" + year;
}
});

当我调试上面的代码并观察 Calendar.MONTHCalendar.DAY_OF_MONTH 的值时,它们是错误的。小时和分钟值也是如此(当前时间是 17:25,但日历给出 11:12)。

我做错了什么? TimerPicker 在同一台设备上自动初始化为正确的时间。

最佳答案

Calendar.HOUR_OF_DAY 是 Android 分配的常量。

当您使用 Calendar.HOUR_OF_DAY 时,它不会为您提供当前时间,而是为您提供 Android 分配给常量 Calendar.HOUR_OF_DAY 的值

如果你想获取当前时间你需要做的

Calendar cal = Calendar.getInstance();

然后如果你想检索当前的小时,像这样检索它

cal.get(Calendar.HOUR_OF_DAY);

这将为您提供当前时间,对于任何其他值也是如此。

注意:当您检索 MONTH 时,它会给您少 1 个值,例如。对于 May,它将返回 4,因为它基于 0 索引值。

所以为了得到今天的日期和时间你必须做

selectedDate = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH)+1) + "/" + cal.get(Calendar.DAY_OF_MONTH);
selectedTime = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE);

关于android - 日历给出错误的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23829215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com