簡體   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