[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]mysql和joda,每周的解析不太一致

上一篇:[备忘]freemarker模板里变量null值的问题
下一篇:[备忘]joda里,以周一为一周的开始。

添加日期:2016/9/30 16:54:51 快速返回   返回列表 阅读1806次
mysql里用的:
SELECT YEARWEEK('2016-01-03',7)
如返回201552

joda Time里,再去解析这个串,推算周一和周日的时间。


String ddd = row.getDateStr();
DateTime dt = DateTime.parse(ddd, DateTimeFormat.forPattern("xxxxww"));
String xx = dt.toString(DateTimeFormat.forPattern("yyyyMMdd"));
System.out.println(xx);

dt = dt.dayOfWeek().withMaximumValue();
xx = dt.toString(DateTimeFormat.forPattern("yyyyMMdd"));
System.out.println(xx);


--------------------------------
结果:
第一周都没问题,
最后一周,有时有问题,有时没问题。

如201552,joda的结果为:
20151221
20151227

如201553,joda的结果为:
20151228
20160103

而mysql里,2016-01-03认为是201552,
因为YEARWEEK,第二个参数用的是7,即从第一个周一,认为是第一周。
而joda,不是这样的,貌似1号开始就算第一周??


而201652,joda的结果为:
20161226 -20170101
结果又一样,伤不起~
-----------------------------------
最后没办法,在sql里
group by YEARWEEK(xxx,7)后,select一个min(xxx)出来,
然后java里用这个日期,找周一和周日,就OK了。

管它第几周,关键要一致

        
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved