java获取日期标记字段(上午/下午)

时间:2010-02-24 05:49:20

标签: java

我需要在日期对象中获取字段AM / PM。我怎么能得到它?

这是我的代码。

String startTime ="01:05 PM";
 SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");

 Date st = sdf.parse(startTime);

5 个答案:

答案 0 :(得分:33)

您可以使用Calendar

Calendar cal = Calendar.getInstance();
cal.setTime(st);
if (cal.get(Calendar.AM_PM) == Calendar.PM) {
  ...
}

确保在执行此操作时没有时区不匹配。

答案 1 :(得分:7)

日历可能是最好的,但您也可以使用DateFormat:

String amPm = new SimpleDateFormat("aa").format(time);

TimeZone警告也适用于此。

答案 2 :(得分:2)

请试试这个

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss_aa");
    Calendar cal = Calendar.getInstance();
    Log.d("Time", ""+dateFormat.format(cal.getTime()));
    int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
    System.out.println("time => " + namesOfDays[day-1]+"_"+dateFormat.format(cal.getTime()));

答案 3 :(得分:2)

使用此.. ..

String getTime(String milliseconds) {

    String time = "";
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(Long.parseLong(milliseconds));

    time = cal.get(Calendar.HOUR) + " : " + cal.get(Calendar.MINUTE);

    if(cal.get(Calendar.AM_PM)==0)
        time=time+" AM";
    else
        time=time+" PM";

    return time;

}

答案 4 :(得分:0)

Calendar也可以

Calendar cal = Calendar.getInstance();
cal.setTime(st);
String meridiem = cal.getDisplayName(Calendar.AM_PM, Calendar.SHORT, Locale.getDefault())

meridiem现在根据您的代码等于“PM”。

相关问题