字符串到java的日期时间 [英] String to date time in java
本文介绍了字符串到java的日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
新日期(2013-06-04 23:59:59)
java的构造函数已被弃用,所以我使用Calender类。我尝试过代码
日历mydate = new GregorianCalendar();
String mystring =2013-06-04 23:59:59;
Date thedate = new SimpleDateFormat(yyyy-mm-dd HH:MM:SS,Locale.ENGLISH).parse(mystring);
mydate.setTime(thedate);
//击穿
System.out.println(mydate - >+ mydate);
System.out.println(year - >+ mydate.get(Calendar.YEAR));
System.out.println(month - >+ mydate.get(Calendar.MONTH));
System.out.println(dom - >+ mydate.get(Calendar.DAY_OF_MONTH));
System.out.println(dow - >+ mydate.get(Calendar.DAY_OF_WEEK));
System.out.println(hour - >+ mydate.get(Calendar.HOUR));
System.out.println(minute - >+ mydate.get(Calendar.MINUTE));
System.out.println(second - >+ mydate.get(Calendar.SECOND));
System.out.println(milli - >+ mydate.get(Calendar.MILLISECOND));
System.out.println(ampm - >+ mydate.get(Calendar.AM_PM));
System.out.println(hod - >+ mydate.get(Calendar.HOUR_OF_DAY));
但结果错误。
mydate - > java.util.GregorianCalendar [time = 1509816960059,areFieldsSet = true,areAllFieldsSet = true,lenient = true,zone = sun.util.calendar.ZoneInfo [id =Asia / Calcutta,offset = 19800000,dstSavings = 0,useDaylight = false,transitions = 6,lastRule = null],firstDayOfWeek = 1,minimumDaysInFirstWeek = 1,ERA = 1,YEAR = 2017,MONTH = 10,WEEK_OF_YEAR = 44,WEEK_OF_MONTH = 1,DAY_OF_MONTH = 4,DAY_OF_YEAR = 308,DAY_OF_WEEK = 7 ,DAY_OF_WEEK_IN_MONTH = 1,AM_PM = 1,HOUR = 11,HOUR_OF_DAY = 23,MINUTE = 6,SECOND = 0,MILLISECOND = 59,ZONE_OFFSET = 19800000,DST_OFFSET = 0]
年 - > 2017
月 - > 10
dom - > 4
dow - > 7
小时 - > 11
分钟 - > 6
second - > 0
milli - > 59
ampm - > 1
hod - > 23
请确定我正在做的错误,并纠正错误。
我需要字符串中提到的值。
解决方案
你的错误模式。 MM
为月, mm
为分钟, ss
几秒钟。
使用:
yyyy-MM-dd HH:mm:ss
另外,请注意, strong>,意味着它从 0
到 11
而不是 1
到 12
:
日历mydate = new GregorianCalendar();
String mystring =2013-06-04 23:59:59;
日期thedate = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss,Locale.ENGLISH).parse(mystring);
mydate.setTime(thedate);
//击穿
System.out.println(mydate - >+ mydate);
System.out.println(year - >+ mydate.get(Calendar.YEAR));
System.out.println(month - >+(mydate.get(Calendar.MONTH)+1)); //< - correction
System.out.println(dom - >+ mydate.get(Calendar.DAY_OF_MONTH));
System.out.println(dow - >+ mydate.get(Calendar.DAY_OF_WEEK));
System.out.println(hour - >+ mydate.get(Calendar.HOUR));
System.out.println(minute - >+ mydate.get(Calendar.MINUTE));
System.out.println(second - >+ mydate.get(Calendar.SECOND));
System.out.println(milli - >+ mydate.get(Calendar.MILLISECOND));
System.out.println(ampm - >+ mydate.get(Calendar.AM_PM));
System.out.println(hod - >+ mydate.get(Calendar.HOUR_OF_DAY));
I have a date time string "2013-06-04 23:59:59" I want to get the date and time separately from this string.
new Date ("2013-06-04 23:59:59")
constructor of java has been deprecated so I used the Calender class. I have tried the code
Calendar mydate = new GregorianCalendar();
String mystring = "2013-06-04 23:59:59";
Date thedate = new SimpleDateFormat("yyyy-mm-dd HH:MM:SS", Locale.ENGLISH).parse(mystring);
mydate.setTime(thedate);
//breakdown
System.out.println("mydate -> "+mydate);
System.out.println("year -> "+mydate.get(Calendar.YEAR));
System.out.println("month -> "+mydate.get(Calendar.MONTH));
System.out.println("dom -> "+mydate.get(Calendar.DAY_OF_MONTH));
System.out.println("dow -> "+mydate.get(Calendar.DAY_OF_WEEK));
System.out.println("hour -> "+mydate.get(Calendar.HOUR));
System.out.println("minute -> "+mydate.get(Calendar.MINUTE));
System.out.println("second -> "+mydate.get(Calendar.SECOND));
System.out.println("milli -> "+mydate.get(Calendar.MILLISECOND));
System.out.println("ampm -> "+mydate.get(Calendar.AM_PM));
System.out.println("hod -> "+mydate.get(Calendar.HOUR_OF_DAY));
but the result is wrong.
mydate -> java.util.GregorianCalendar[time=1509816960059,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2017,MONTH=10,WEEK_OF_YEAR=44,WEEK_OF_MONTH=1,DAY_OF_MONTH=4,DAY_OF_YEAR=308,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=6,SECOND=0,MILLISECOND=59,ZONE_OFFSET=19800000,DST_OFFSET=0]
year -> 2017
month -> 10
dom -> 4
dow -> 7
hour -> 11
minute -> 6
second -> 0
milli -> 59
ampm -> 1
hod -> 23
Please figure out the mistake I am doing and rectify the error.
I need the values that are mentioned in the string.
解决方案
You got the wrong pattern. MM
is for month, mm
is for minutes and ss
for seconds.
Use:
"yyyy-MM-dd HH:mm:ss"
Also, notice that the month is zero-based, meaning it goes from 0
to 11
, not 1
to 12
:
Calendar mydate = new GregorianCalendar();
String mystring = "2013-06-04 23:59:59";
Date thedate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).parse(mystring);
mydate.setTime(thedate);
//breakdown
System.out.println("mydate -> "+mydate);
System.out.println("year -> "+mydate.get(Calendar.YEAR));
System.out.println("month -> "+(mydate.get(Calendar.MONTH)+1)); // <-- corrected
System.out.println("dom -> "+mydate.get(Calendar.DAY_OF_MONTH));
System.out.println("dow -> "+mydate.get(Calendar.DAY_OF_WEEK));
System.out.println("hour -> "+mydate.get(Calendar.HOUR));
System.out.println("minute -> "+mydate.get(Calendar.MINUTE));
System.out.println("second -> "+mydate.get(Calendar.SECOND));
System.out.println("milli -> "+mydate.get(Calendar.MILLISECOND));
System.out.println("ampm -> "+mydate.get(Calendar.AM_PM));
System.out.println("hod -> "+mydate.get(Calendar.HOUR_OF_DAY));
这篇关于字符串到java的日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文