将字符串转换为日期和时间为am / pm格式

时间:2014-05-20 04:44:32

标签: java datetime timestamp

 string : 2014-04-25 17:03:13

使用SimpleDateFormat是否足以格式化? 要么 否则我会转向任何新的API?

Date date = new Date(string);
DateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd");
out.println( dateFormat.format (date));

我的预期结果是(印度地区):

Date : 25-04-2014
Time : 05:03 PM

4 个答案:

答案 0 :(得分:17)

记住Date个对象没有固有的格式,你需要两个DateFormat个对象来产生你想要的结果 - 一个要解析,另一个要格式化:

String input = "2014-04-25 17:03:13";
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat outputFormat = new SimpleDateFormat("'Date : 'dd-MM-yyyy\n'Time : 'KK:mm a");
System.out.println(outputFormat.format(inputFormat.parse(input)));

输出:

Date : 25-04-2014
Time : 05:03 PM

请注意格式中引用序列的使用,例如"'Date : '",在格式模式中视为文字。

答案 1 :(得分:3)

我自定义onTimeSet()功能。将hourminutes发送给它。它会以format am and pm

返回时间
public static String onTimeSet( int hour, int minute) {

    Calendar mCalen = Calendar.getInstance();;
       mCalen.set(Calendar.HOUR_OF_DAY, hour);
       mCalen.set(Calendar.MINUTE, minute);

       int hour12format_local = mCalen.get(Calendar.HOUR);
       int hourOfDay_local = mCalen.get(Calendar.HOUR_OF_DAY);
       int minute_local = mCalen.get(Calendar.MINUTE);
       int ampm = mCalen.get(Calendar.AM_PM);
       String minute1;
       if(minute_local<10){

        minute1="0"+minute_local;
       }
       else
          minute1=""+minute_local;

       String ampmStr = (ampm == 0) ? "AM" : "PM";
       // Set the Time String in Button

       if(hour12format_local==0)
        hour12format_local=12;



String selecteTime=hour12format_local+":"+ minute1+" "+ampmStr;

retrun selecteTime;


}

答案 2 :(得分:0)

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a");

您可以找到更多模式here

答案 3 :(得分:0)

尝试下面的示例代码:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); 
//Output: 2013-05-20 10:16:44

有关数据和时间的更多功能,请尝试Joda-Time API