Java 如何在Android上正确设置日期格式?

Java 如何在Android上正确设置日期格式?,java,android,date-formatting,Java,Android,Date Formatting,我正在构建一个IOS和Android版本,在我的IOS中,日期的格式是“2017年6月23日上午8:58” 在安卓系统中,我以数字形式获取日期,然后按如下方式分配: public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { date_time = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year; timePicker(); }

我正在构建一个IOS和Android版本,在我的IOS中,日期的格式是“2017年6月23日上午8:58”

在安卓系统中,我以数字形式获取日期,然后按如下方式分配:

 public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

 date_time = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
 timePicker();
}
下面是
timePicker()
方法:

private void timePicker(){
        // Get Current Time
        final Calendar c = Calendar.getInstance();
        mHour = c.get(Calendar.HOUR_OF_DAY);
        mMinute = c.get(Calendar.MINUTE);

        // Launch Time Picker Dialog
        TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                new TimePickerDialog.OnTimeSetListener() {

                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                        mHour = hourOfDay;
                        mMinute = minute;

                        et_show_date_time.setText(date_time+" "+hourOfDay + ":" + minute);
                    }
                }, mHour, mMinute, false);
        timePickerDialog.show();
    }
结果是“27-6-2017 16:55”


如何设置与IOS版本相似的格式?

您可以通过SimpleDataFormat实现这一点

Date currentTime = Calendar.getInstance().getTime();
    String newFormat="";
    try
    {

        SimpleDateFormat form = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss");
        newFormat = form.format(currentTime);
        tvAppliedDate.setText(newFormat);


    }
    catch (Exception e)
    {

        e.printStackTrace();
        Toast.makeText(this, "parse error", Toast.LENGTH_SHORT).show();
    }

始终使用日历对象。然后,您可以在设置文本时对其进行格式化。尝试存储单独的datetime将更难调试我不了解其中的一些,什么是“Tvappleddate”,什么是当前时间?current time是给出当前时间的日期实例变量,Tvappleddate是我使用的textview,您可以在使用Calendar.getInstance().getTime()并将其格式化为SimpleDataFormat form=new SimpleDataFormat(HH:mm:ss”);newFormat=form.format(currentTime);//newFormat是包含时间的字符串时,从选择器获取当前日期