前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scala Calendar中获取月份遇到“坑”

scala Calendar中获取月份遇到“坑”

作者头像
sparkexpert
发布2022-05-07 14:27:31
4630
发布2022-05-07 14:27:31
举报
文章被收录于专栏:大数据智能实战

calendar.get(Calendar.MONTH)  月份是从0开始的  你设置是12 其实系统以为是1月,所以用0来表示1月,你如果想表示12月那就应该设置calendar.set(2011,11,31);  这样就会读出来是数字12 

之前没有写过这样的函数,结果在HIVE里面查找分区,结果发现经常出错,其原因居然在于这个地方。后面直接+1就成功解决了。

scala> import java.util.{Calendar, Date} import java.util.{Calendar, Date} scala> val cal = Calendar.getInstance() cal: java.util.Calendar = java.util.GregorianCalendar[time=1459391506269,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=2,WEEK_OF_YEAR=14,WEEK_OF_MONTH=5,DAY_OF_MONTH=31,DAY_OF_YEAR=91,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=5,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=31,SECOND=46,MILLISECOND=269,ZONE_OFFSET=28800000,DST_OFFSET=0] scala> cal.setTimeInMillis(ts*1000L) scala> val year:Int = cal.get(Calendar.YEAR) year: Int = 2015 scala>     val month:Int = cal.get(Calendar.MONTH) month: Int = 9 scala>     val day1:Int = cal.get(Calendar.DAY_OF_MONTH) day1: Int = 2 scala> val ts2 = 1441123200L; ts2: Long = 1441123200 scala> cal.setTimeInMillis(ts2*1000L) scala>     val month:Int = cal.get(Calendar.MONTH) month: Int = 8 scala> val ts3=1420041600L ts3: Long = 1420041600 scala> cal.setTimeInMillis(ts3*1000L) scala>     val month:Int = cal.get(Calendar.MONTH) month: Int = 0

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档