在android中以AM/PM格式显示时间

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2605470/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 06:31:59  来源:igfitidea点击:

Displaying the Time in AM/PM format in android

android

提问by Rahul Kalidindi

I am getting the time using a time picker and displaying the time in the text view using following code...

我正在使用时间选择器获取时间并使用以下代码在文本视图中显示时间...

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        Toast.makeText(SendMail.this, "Your Appointment time is "+hourOfDay+":"+minute,    Toast.LENGTH_SHORT).show();
        TextView datehid = (TextView)findViewById(R.id.timehidden);
        datehid.setText(String.valueOf(hourOfDay)+ ":"+(String.valueOf(minute)));
    }
};

Now, the issue is when i set the time as 8:00 pm then i get the time displayed as 20:0... I want to display the time as 8:00 pm... How can i do that???

现在,问题是当我将时间设置为 8:00 pm 然后我将时间显示为 20:0...我想将时间显示为 8:00 pm...我该怎么做???

回答by arlen

private String getReminingTime() {
    String delegate = "hh:mm aaa";
    return (String) DateFormat.format(delegate,Calendar.getInstance().getTime());
}

回答by Rahul Kalidindi

I have done like this to achieve it.

我这样做是为了实现它。

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        TextView datehid = (TextView)findViewById(R.id.timehidden);
        if(hourOfDay>12) {
            datehid.setText(String.valueOf(hourOfDay-12)+ ":"+(String.valueOf(minute)+"pm"));
        } else if(hourOfDay==12) {
            datehid.setText("12"+ ":"+(String.valueOf(minute)+"pm"));
        } else if(hourOfDay<12) {
            if(hourOfDay!=0) {
                datehid.setText(String.valueOf(hourOfDay) + ":" + (String.valueOf(minute) + "am"));
            } else {
                datehid.setText("12" + ":" + (String.valueOf(minute) + "am"));
            }
        }
    }
};    

回答by Pravin Bhosale

SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss a");
String  currentTime = df.format(currnetDateTime.getTime());

回答by Phan Van Linh

Calendar now = Calendar.getInstance();
if(now.get(Calendar.AM_PM) == Calendar.AM){
   // AM
   System.out.println(""+now.get(Calendar.HOUR)+":AM");
}else{
   // PM
   System.out.println(""+now.get(Calendar.HOUR)+":PM");
}

回答by j2emanue

int am_pm=mycalendar.get(Calendar.AM_PM);
String amOrpm=((am_pm==Calendar.AM)?"am":"pm");

But as per my opinion simpleDateFormat would be the best use, like this:

但在我看来 simpleDateFormat 将是最好的用途,像这样:

final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Chicago"));
SimpleDateFormat format = new SimpleDateFormat("h:mm a");
format.setTimeZone(c.getTimeZone());
String myFormatted time = format.format(c.getTime());

It's better as the calendar by default will return 00 for 12 pm, which you might don't want.

最好是默认情况下日历将在下午 12 点返回 00,这是您可能不想要的。

回答by Sachin Gurnani

I have done like this to achieve it.

我这样做是为了实现它。

TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
        myCalendar.set(Calendar.MINUTE, minute);
        update_From_Time();
    }
};

DateFormat frmTime=DateFormat.getTimeInstance();
protected void update_From_Time() {
    s = frmTime.format(myCalendar.getTime());
    btnFromTime.setText(s);
}

回答by Adil Malik

This worked for me:

这对我有用:

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    String am_pm = "";

    Calendar datetime = Calendar.getInstance();
    datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
    datetime.set(Calendar.MINUTE, minute);

    if (datetime.get(Calendar.AM_PM) == Calendar.AM)
        am_pm = "AM";
    else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
        am_pm = "PM";

    String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+""; 

    ((Button)getActivity().findViewById(R.id.btnEventStartTime)).setText( strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm );
}

回答by Technology King

// Best Result Give Bapu_Darbar:::

Date dt = new Date(); int hours = dt.getHours(); int min = dt.getMinutes(); int am_pm = Calendar.AM_PM;

    if(hours>=1 || hours<=3 && am_pm == Calendar.AM){
        spl_text.setText("Welcome \n Good Night,Sweet Dream");
    }else if(hours>=4 || hours<=12 && am_pm == Calendar.AM){
        spl_text.setText("Welcome \n Good Morning,Have A Nice Day");
    }else if(hours>=13 || hours<=17 && am_pm == Calendar.PM){
        spl_text.setText("Welcome \n Good Afternoon");
    }else if(hours>=18 || hours<=20 && am_pm == Calendar.PM){
        spl_text.setText("Welcome \n Good Evening");
    }else if(hours>=21 || hours<=24 && am_pm == Calendar.PM){
        spl_text.setText("Welcome \n Good Night,Sweet Dream");
    }