我有一个字符串27-05-2015 09:01:53 PM 。 我希望它将它转换为Date object ,Date对象应该像27-05-2015 09:01:53 PM (类似于我的字符串)。
我尝试过SimpleDateFormat但是它给出了像Wed May 27 00:00:00 CDT 2015 。 如果我使用SimpleDateFormat格式方法,那么它将转换为String 。
代码:SimpleDateFormat formatter = new SimpleDateFormat(“dd-MM-yyyy HH:mm:ss a”);
String dateInString = "27-05-2015 10:23:31 PM"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); // String s = formatter.format(date); // System.out.println(s.substring(7, 9) + ":" + s.substring(27)); // System.out.println(s.substring(0, 2) +"/"); // Date dt = Calendar.getInstance().getTime(); // System.out.println(formatter.format(dt)); // System.out.println(Calendar.getInstance().getTime()); } catch (ParseException e) { e.printStackTrace(); }我希望Date对象完全符合这种格式27-05-2015 09:01:53 PM
I have a String 27-05-2015 09:01:53 PM. I want it to convert it into Date object and Date object should be like 27-05-2015 09:01:53 PM(Similar as my String).
I tried SimpleDateFormat but it gives like Wed May 27 00:00:00 CDT 2015. If I used format method of SimpleDateFormat then it converts to String.
Code: SimpleDateFormat formatter = new SimpleDateFormat( "dd-MM-yyyy HH:mm:ss a");
String dateInString = "27-05-2015 10:23:31 PM"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); // String s = formatter.format(date); // System.out.println(s.substring(7, 9) + ":" + s.substring(27)); // System.out.println(s.substring(0, 2) +"/"); // Date dt = Calendar.getInstance().getTime(); // System.out.println(formatter.format(dt)); // System.out.println(Calendar.getInstance().getTime()); } catch (ParseException e) { e.printStackTrace(); }I want Date object in exactly this format 27-05-2015 09:01:53 PM
最满意答案
不,你不能(String Object to date对象在与String相同的输出中 )。 Date类具有自己的toString()方法实现。当您打印日期对象时,如System.out.println(date); 这意味着它基本上打印了toString()方法的实现格式。
Date类的toString()方法
public String toString() { // "EEE MMM dd HH:mm:ss zzz yyyy"; BaseCalendar.Date date = normalize(); StringBuilder sb = new StringBuilder(28); int index = date.getDayOfWeek(); if (index == gcal.SUNDAY) { index = 8; } convertToAbbr(sb, wtb[index]).append(' '); // EEE convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' '); // MMM CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':'); // HH CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss TimeZone zi = date.getZone(); if (zi != null) { sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz } else { sb.append("GMT"); } sb.append(' ').append(date.getYear()); // yyyy return sb.toString(); }No, You can not (String Object to date object in same output as String). Date class has it's own toString() method implementation.When you are printing the date object like System.out.println(date); it means it basically prints the toString() method implementation format.
toString() method of Date class
public String toString() { // "EEE MMM dd HH:mm:ss zzz yyyy"; BaseCalendar.Date date = normalize(); StringBuilder sb = new StringBuilder(28); int index = date.getDayOfWeek(); if (index == gcal.SUNDAY) { index = 8; } convertToAbbr(sb, wtb[index]).append(' '); // EEE convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' '); // MMM CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':'); // HH CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss TimeZone zi = date.getZone(); if (zi != null) { sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz } else { sb.append("GMT"); } sb.append(' ').append(date.getYear()); // yyyy return sb.toString(); }更多推荐
发布评论