【问题标题】:WEEK_OF_YEAR mismacthing in JAVA and MYSQL [duplicate]JAVA 和 MYSQL 中的 WEEK_OF_YEAR 不匹配 [重复]
【发布时间】:2016-07-08 08:07:54
【问题描述】:

我正在执行以下 Java 代码:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));
System.out.println(cal.getTime());

输出:

28

2016 年 7 月 8 日星期五 08:56:04 BST

下面是我在MYSQL中执行的命令:

select week(CURDATE()), CURDATE();

输出:

27 2016-07-08

如何同步一年中的这两个星期的值?我试过week(CURDATE(),0) 还是一样的结果,没有TimeZone 也试过但是得到了一样的结果。

【问题讨论】:

  • 仅供参考:Calendar.WEEK_OF_YEAR 的定义因地区而异。完全避免该课程;现在被 java.time 类取代。

标签: java mysql date calendar


【解决方案1】:

“一年中的第一周”的定义是随意的。您需要找出正在使用的 MySQL 定义是什么并让 Java 匹配它,或者找出默认 Java 定义是什么并让 MySQL 匹配它。

在 Java 方面,它将受到 Calendar#setFirstDayOfWeekCalendar#setMinimalDaysInFirstWeek 的影响(可能还有其他人,请查看 Calendar 文档)。

【讨论】:

  • 我需要通用的解决方案
  • @Rajesh:这一个通用的解决方案:确保两个系统之间的规则匹配。 (而且“我需要”是一种非常糟糕的寻求帮助的方式。)
  • 谢谢。 @T.J.克劳德。我在 MySQL 中以默认模式使用 YEARWEEK()。那么 Java 等价物是什么?我无法弄清楚。请帮忙。
猜你喜欢
  • 2017-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
相关资源
最近更新 更多