我有一个字符串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
答案 0 :(得分:0)
以下是如何将日期转换为日期对象的示例
public class DateFormat
{
public static void main(String[] args) throws ParseException
{
String dateString = "27-05-2015 09:01:53 PM";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
Date date =simpleDateFormat.parse(dateString);
System.out.println(date);
}
}
编辑:已添加进一步检查
public static void main(String[] args) throws ParseException
{
String dateString = "27-05-2015 09:01:53 PM";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
Date date =simpleDateFormat.parse(dateString);
//System.out.println(date);
System.out.println(simpleDateFormat.format(date).equals(dateString));
}
答案 1 :(得分:0)
为什么要在不需要时进行格式化,只需要使用SimpleDateFormat#parse
方法解析字符串
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");
try{
Date parsedDate = sdf.parse(yourDateInString);
}catch(ParseException e){
e.printStackTrace();
}
更新:
现在要格式化解析日期,只需使用相同的格式化程序格式化它
logger.debug(sdf.format(parsedDate));
<强>输出强>
27-05-2015 09:01:53 PM
答案 2 :(得分:0)
不,你不能(String对象到日期对象在与String 相同的输出中)。 Date类具有自己的toString()方法实现。当您打印日期对象时,如System.out.println(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();
}
答案 3 :(得分:0)
HH
从0到23,hh
从1到12(上午/下午)。将格式HH
更改为hh
。
<强>更新强>
HH is 24 hours format.
hh is 12 hours format.