使用对象 java.util.Date 时出现错误的星期几 [重复]
Posted
技术标签:
【中文标题】使用对象 java.util.Date 时出现错误的星期几 [重复]【英文标题】:Getting to wrong day of the week when using the object java.util.Date [duplicate] 【发布时间】:2016-11-16 00:05:53 【问题描述】:我正在尝试从 datePicker 检索日期并创建一个 java.util.Date 对象,但我不明白为什么我在 selectedDate 中得到错误的星期几多变的。 currentDate 变量是正确的。
String dateStr = String.valueOf(dayOfMonth) + "/" + String.valueOf(monthOfYear) + "/" + String.valueOf(year);
String timeStr = String.valueOf(hourOfDay) + ":" + String.valueOf(minute);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date selectedDate = simpleDateFormat.parse(dateStr + " " + timeStr);
Date currentDate = Calendar.getInstance().getTime();
System.out.println("selectedDate = " + String.valueOf(selectedDate));
System.out.println("currentDate = " + String.valueOf(currentDate));
输出:
selectedDate = Mon Jun 13 12:44:00 WEST 2016
currentDate = Wed Jul 13 12:44:04 WEST 2016
【问题讨论】:
【参考方案1】:您应该检查(打印或调试)monthOfYear
的值 - 输出显示它的值是 6,而您似乎期望它是 7(可能是因为您没有考虑到 datePicker.getMonth()
返回的事实一个介于 0 和 11 之间的值)。
由于你没有展示你是如何获得价值的,所以很难说更多。
【讨论】:
【参考方案2】:试试这个:
Calendar c = Calendar.getInstance();
int[] date =
c.get(Calendar.DATE), c.get(Calendar.MONTH),
c.get(Calendar.YEAR), c.get(Calendar.DAY_OF_WEEK)
;
date[1]+=1;
此设置使用集成到 android 中的 Calendar 类。需要 date[1] += 1 才能获得准确的月份,因为它的索引从 0 到 11。据我所知,其他都很好。
【讨论】:
【参考方案3】:它实际上在寻找我,从某个点开始从“0”开始计数,然后从“1”开始计数。
也许先尝试将字符串传递到控制台进行调试。
【讨论】:
以上是关于使用对象 java.util.Date 时出现错误的星期几 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str
在使用jdbc 里面出现了日期数据转换错误,java.util.date 类型的数据怎样转换成java.sql.date 类型。
插入 JSON 对象时出现 Python pymysql 语法错误