将日历字符串转换为Java中的Calendar对象 [英] Convert calendar String to Calendar Object in java

查看:62
本文介绍了将日历字符串转换为Java中的Calendar对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不会将字符串Calendar Object(calendar.toString())转换为Calendar对象.我尝试了此解决方案,但它在控制台中显示的日期是"2017年12月5日",而不是"2017年2月2日".

I wan't to convert a string Calendar Object (calendar.toString()) to calendar object. I tried this solution but it show in console the date of the day '12-05-2017' not '02-02-2017'

字符串日历对象格式:

java.util.GregorianCalendar [time = 1485993600000,areFieldsSet = true,areAllFieldsSet = true,lenient = true,zone = sun.util.calendar.ZoneInfo [id ="Africa/Casablanca",offset = 0,dstSavings = 3600000,useDaylight = true,transitions = 102,lastRule = java.util.SimpleTimeZone [id = Africa/Casablanca,offset = 0,dstSavings = 3600000,useDaylight = true,startYear = 0,startMode = 2,startMonth = 2,startDay =-1,startDayOfWeek = 1,startTime = 7200000,startTimeMode = 0,endMode = 2,endMonth = 9,endDay = -1,endDayOfWeek = 1,endTime = 10800000,endTimeMode = 0]],firstDayOfWeek = 2,minimalDaysInFirstWeek = 4,ERA= 1,YEAR = 2017,MONTH = 1,WEEK_OF_YEAR = 5,WEEK_OF_MONTH = 1,DAY_OF_MONTH = 2,DAY_OF_YEAR = 33,DAY_OF_WEEK = 5,DAY_OF_WEEK_IN_MONTH = 1,AM_PM = 0,HOUR = 0,HOUR_OF_DAY = 0,MINUTE = 0,SECOND = 0,MILLISECOND = 0,ZONE_OFFSET = 0,DST_OFFSET = 0]

java.util.GregorianCalendar[time=1485993600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Africa/Casablanca",offset=0,dstSavings=3600000,useDaylight=true,transitions=102,lastRule=java.util.SimpleTimeZone[id=Africa/Casablanca,offset=0,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=10800000,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2017,MONTH=1,WEEK_OF_YEAR=5,WEEK_OF_MONTH=1,DAY_OF_MONTH=2,DAY_OF_YEAR=33,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]

             Calendar calendar = GregorianCalendar.getInstance();
             calendar.setTime(new Date("2017/02/02"));
             System.out.println("calendar : "+calendar.getTime());
             try {
                 GregorianCalendar gc = new GregorianCalendar();
                 DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
                 System.out.println("calendar : "+calendar.getTime());
                 gc.setTimeZone(TimeZone.getTimeZone(calendar.toString()));
                 System.out.println("tme zone : "+gc.getTimeZone());
                 System.out.println("calendar : "+calendar.getTime());
                 System.out.println("calendar : "+calendar.toString());
                 System.out.println(formatter.format(gc.getTime()));
             }
             catch(Exception e) {
                 //If exception, return server TimeStamp
             }

请帮助

推荐答案

感谢@Ole,我终于找到了解决方案并且可以使用.

Thanks @Ole , I finally found the solution and it works.

             Calendar calendar = Calendar.getInstance();;
             calendar.setTime(new Date("2017/02/02"));
             String[] ds = calendar.toString().split("=");
             String[] ds2 = ds[1].split(",");
             try {
                 Calendar cal = Calendar.getInstance();;
                 DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
                 cal.setTimeInMillis(Long.valueOf(ds2[0]));
                 System.out.println(formatter.format(cal.getTime()));
             }
             catch(Exception e) {

             }

这篇关于将日历字符串转换为Java中的Calendar对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆