将日历字符串转换为Java中的Calendar对象 [英] Convert calendar String to Calendar Object in java
问题描述
我不会将字符串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屋!