满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述在日历安卓中设置日期相关的知识,希望能为你提供帮助。
【在日历安卓中设置日期】我不是常见的android程序员,也不太明白为什么会这样:
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, anio);
c.set(Calendar.MONTH, mes);
c.set(Calendar.DAY_OF_MONTH, dia);
c.set(Calendar.HOUR, hora);
c.set(Calendar.MINUTE, minuto);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
Log.i("ET", "Day: " +dia );
Log.i("ET", "CalDAy: " +c.get(Calendar.DAY_OF_MONTH));
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm");
Log.i("ETCalendar", "Tactual "+ formatter.format(c.getTimeInMillis()));
return c.getTimeInMillis();
这是LogCat:
I/ET(27819): Day: 16 11-16 19:13:38.656:
I/ET(27819): CalDAy: 17 11-16 19:13:38.656:
I/ETCalendar(27819): 4Tactual 17/11/2013 07:13
想到一个可能的解决方案是:
c.set(Calendar.DAY_OF_MONTH, dia - 1);
但那会有用吗?
谢谢!
答案问题是HOUR用于定义12小时格式的小时。
更改您的代码:
calendar.set(Calendar.HOUR, hour);
至:
calendar.set(Calendar.HOUR_OF_DAY, hour);
推荐阅读
- 如何在Bluemix Node-Red Application中发送会议邀请(日历)[关闭]
- 如何获取所有当前的Android日历实例
- 如何在Android设备中获取设备日历事件列表()
- 从数据库获取事件并放置日历视图(android)
- Android java以24小时格式获取当前时间
- 在Android中,每天在特定时间设置重复警报
- Android日历序列化与Java 6不兼容
- 解决方案(从C#app调用Crystal Report导致“数据库登录失败”或“加载报告失败”)
- Jackson ObjectMapper给出了递归数据类型的错误