繁体   English   中英

Android SQLite在将时间传递给对象之前在onCreate方法中转换时间

[英]Android SQLite convert time in onCreate method before passing it into object

当前,我有一个TimePickerDialog,用户将在其中选择时间,并将时间传递到对象的参数中,以在SQLite数据库中创建一行。 我想将时间以24小时的形式存储在数据库中,但是我希望以12小时的格式将其显示给用户。 这是我的TimePickerDialog代码:

TimePickerDialog.OnTimeSetListener time = new 
TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

            if (hourOfDay < 10) {
                hourString = "0"
                        + hourOfDay;
            } else {
                hourString = String.valueOf(hourOfDay);
            }
            if (minute < 10) {
                minuteString = "0" + minute;
            } else {
                minuteString = String.valueOf(minute);
            }

            String twentyFourTime = hourString + ":" + minuteString;

            tvScheduleTime.setText(twentyFourTime);

        }
    };

然后在我的onCreate方法上,我从tvScheduleTime获取了保存到数据库中的时间

btnSaveSchedule.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // schedule items
                String scheduleName = etScheduleName.getText().toString();
                String scheduleDesc = etScheduleDesc.getText().toString();
                String scheduleDate = Day + " " + selectedMonth + " " + Year;
                String scheduleTime = tvScheduleTime.getText().toString();

                int routeID = 12345;

                Log.w("RESULTS", scheduleTime + scheduleDate);

                DatabaseScheduleHelper db = new DatabaseScheduleHelper(getApplicationContext());
                db.addSchedule(new ObjectSchedule(scheduleTime, scheduleDate, scheduleName, scheduleDesc, routeID));


            }
        });

本质上,我的问题是,我希望scheduleTime24小时格式ObjectSchedule对象中传递,但ObjectSchedule中的文本以12小时格式 tvScheduleTime 但是,如何从TimePickerDialog侦听器向我的onCreate方法返回二十twentyFourTime时间的值? 然后,从那里我将可以完成所有转换。

如果我做对了,您只是想要一种在获得时立即将军事时间转换为正常时间的方法(通过数据库或通过OnTimeSetListener获得)? 如果是这样,下面的方法应该可以工作(未经测试)。

int hr =从数据库或从TimeListener中获取

hr = convertToNormalTime(hr);

private int convertToNormalTime(int militaryTime){
    int hr = militaryTime;
    if(hr > 12){
        hr = militaryTime - 12; // to convert military to normal time always subtract by 12
    }
    return hr;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM