簡體   English   中英

如何使用AM&PM在時間選擇器中設置12小時格式?

[英]How to set 12 hours format in time picker with AM & PM?

我只想以12小時格式存儲時間。

時間選擇器工作正常,但我只想在EditText中選擇時間之后設置AM或PM。

這是我的TimePicker主題

在這里,我完整的代碼

  starttime.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Initialize a new time picker dialog fragment
            DialogFragment dFragment = new TimePickerFragment();

            // Show the time picker dialog fragment
            dFragment.show(getActivity().getFragmentManager(),"Time Picker");

        }
    });

TimePickerDialog.java

   package com.Weal.sachin.omcom;

/**
 * Created by sachin on 2/1/2017.
 */

import android.app.AlertDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.widget.TextView;
import android.app.DialogFragment;
import android.app.Dialog;
import java.util.Calendar;
import android.widget.TimePicker;

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener{

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){
        // Get a Calendar instance
        final Calendar calendar = Calendar.getInstance();
        // Get the current hour and minute
        int hour = calendar.get(Calendar.HOUR);
        int minute = calendar.get(Calendar.MINUTE);

        /*
            Creates a new time picker dialog with the specified theme.

                TimePickerDialog(Context context, int themeResId,
                    TimePickerDialog.OnTimeSetListener listener,
                    int hourOfDay, int minute, boolean is24HourView)
         */

        // TimePickerDialog Theme : THEME_DEVICE_DEFAULT_LIGHT
        TimePickerDialog tpd = new TimePickerDialog(getActivity(),
                AlertDialog.THEME_DEVICE_DEFAULT_LIGHT,this,hour,minute,false);

        // TimePickerDialog Theme : THEME_DEVICE_DEFAULT_DARK
        TimePickerDialog tpd2 = new TimePickerDialog(getActivity(),
                AlertDialog.THEME_DEVICE_DEFAULT_DARK,this,hour,minute,false);

        // TimePickerDialog Theme : THEME_HOLO_DARK
        TimePickerDialog tpd3 = new TimePickerDialog(getActivity(),
                AlertDialog.THEME_HOLO_DARK,this,hour,minute,false);

        // TimePickerDialog Theme : THEME_HOLO_LIGHT
        TimePickerDialog tpd4 = new TimePickerDialog(getActivity(),
                AlertDialog.THEME_HOLO_LIGHT,this,hour,minute,false);

        // TimePickerDialog Theme : THEME_TRADITIONAL
        TimePickerDialog tpd5 = new TimePickerDialog(getActivity(),
                AlertDialog.THEME_TRADITIONAL,this,hour,minute,false);

        // Return the TimePickerDialog
        return tpd;
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute){
        // Do something with the returned time
        TextView tv = (TextView) getActivity().findViewById(R.id.start_time);
        tv.setText( hourOfDay + ":" + minute );

    }
}

使用此邏輯查找上午

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    String AM_PM ;
    if(hourOfDay < 12) {
        AM_PM = "AM";
    } else {
        AM_PM = "PM";
    }
}

這個答案將是幾行代碼的最佳選擇。

@Override
public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second)
{
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);
    calendar.set(Calendar.MINUTE,minute);
    calendar.set(Calendar.SECOND,second);

    textViewStartTime.setText(startTimeFormat().format(calendar.getTime()));
}

public SimpleDateFormat startTimeFormat(){
    return this.startTimeFormat = new SimpleDateFormat("hh:00 a");
}

輸出時間為:-12:00 AM

嘗試它會幫助您,

public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {
        String hourString = "";
        if(hourOfDay < 12) {
            hourString = hourOfDay < 10 ? "0"+hourOfDay : ""+hourOfDay;
        } else {
            hourString = (hourOfDay - 12) < 10 ? "0"+(hourOfDay - 12) : ""+(hourOfDay - 12);
        }
        String minuteString = minute < 10 ? "0"+minute : ""+minute;
        String secondString = second < 10 ? "0"+second : ""+second;
        String am_pm = (hourOfDay < 12) ? "am" : "pm";
        String time = hourString+":"+minuteString + " " + am_pm;
        time.setTextColor(getResources().getColor(R.color.dark_blue));
        time.setText(time);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM