簡體   English   中英

Android - 如何將日期/時間存儲到我的數據庫?

[英]Android - How can I store Date/Time to my database?

我試圖關注這篇文章,但我不知道如何將我的數據存儲在iso8601格式中,因為我沒有從timepicker接口獲得任何“秒”輸入,我可以將“0000”附加到字符串構建器的末尾?

該帖子還使用SimpleDateFormat(),僅支持API 24。 我的最低API級別是19.它是否有相同的功能?

Java代碼:

public void saveExam() {
        date = (DatePicker)findViewById(R.id.examDate);
        Integer day = date.getDayOfMonth();
        Integer month = date.getMonth();
        Integer year = date.getYear();

        time = (TimePicker)findViewById(R.id.examTime);
        Integer hour, minutes;
        if (Build.VERSION.SDK_INT >= 23 ) {
            hour = time.getHour();
            minutes = time.getMinute();
        } else {
            hour = time.getCurrentHour();
            minutes = time.getCurrentMinute();
        }

        StringBuilder temp = new StringBuilder();
        temp.append(year.toString()).append("-").append(month.toString()).append("-").append(day.toString())
                    .append(" ").append(hour).append(":").append(minutes);

        Toast.makeText(add_exam.this, temp, Toast.LENGTH_LONG).show();
    }

也有人也可以向我解釋這部分代碼,這是我第一次看到標志:

if (date != null) {
    long when = date.getTime();
    int flags = 0;
    flags |= android.text.format.DateUtils.FORMAT_SHOW_TIME;
    flags |= android.text.format.DateUtils.FORMAT_SHOW_DATE;
    flags |= android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
    flags |= android.text.format.DateUtils.FORMAT_SHOW_YEAR;

    finalDateTime = android.text.format.DateUtils.formatDateTime(context,
        when + TimeZone.getDefault().getOffset(when), flags);

標志用於設置格式輸出,以傳遞到DateUtils.formateDateTime方法的時間(以毫秒為DateUtils.formateDateTime 它們代表位掩碼的一部分。 在這里,您可以在DateUtils看到用於格式化日期的不同標志值。

例如:

DateUtils.FORMAT_SHOW_TIME = 1; // 1 binary representation
DateUtils.FORMAT_SHOW_WEEKDAY = 2; // 10 binary representation
DateUtils.FORMAT_SHOW_YEAR = 4; // 100 binary representation
...

如果你有3 ,那么它將是11 ,這意味着將應用DateUtils.FORMAT_SHOW_TIMEDateUtils.FORMAT_SHOW_WEEKDAY ,你會得到類似這樣的結果:“星期六晚上11點04分”。

如果你有5 ,那么它將是101 ,這意味着將應用DateUtils.FORMAT_SHOW_TIMEDateUtils.FORMAT_SHOW_YEAR 但不是像“2016年下午11:04”這樣的東西,你將有“晚上11:04”。 因此,據我所知,組合標志時會發生一些沖突。

基本上,有下一個組合標志和相應輸出的例子:

DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME) = "10:58pm"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_DATE) = "September 17"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_ABBREV_MONTH) = "Sep 17"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_YEAR) = "September 17, 2016"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE) = "September 17, 2016"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_ABBREV_MONTH) = "Sep 17, 2016"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_ABBREV_MONTH | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME) = "11:00pm, Sep 17, 2016"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_MONTH) = "Sep 17"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_YEAR) = "11:03pm"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_WEEKDAY) = "11:04pm, Saturday"
DateUtils.formatDateTime(this, System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE) = "11:04pm, September 17"

暫無
暫無

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

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