簡體   English   中英

如何將“String HH:MM”轉換為“int hour HH”和“int minute MM”

[英]How can I convert a “String HH:MM” to a “int hour HH” and “int minute MM”

我有這個代碼。 我需要將string “horaTarefa HH:MM”轉換int “hour = HH”int “minute = MM”

我想我可以用“dateTarefa DD / MM / YYYY”做同樣的事嗎?

SQLiteDatabase db;
db = openOrCreateDatabase("AgendadorTarefas.db",SQLiteDatabase.CREATE_IF_NECESSARY,null); { }

Cursor c = db.query("Tarefa", new String[] {
              "codTarefa", "dateTarefa", "horaTarefa", "textoTarefa"}, 
            null, null, null, null, null);

c.moveToFirst();

final ArrayList<String> result = new ArrayList<String>();

while(c.moveToNext())
{ 
    String Date = c.getString(1);
    String Hora = c.getString(2);
    String Texto = c.getString(3);
    result.add(Data + " às " + Hora + " \n" + Texto);
}

hour = Calendar.HOUR;
minute = Calendar.MINUTE;

c.close();    

最好使用dateformatter而不是僅解析整數。 通過這種方式,您可以更好地控制時間和日期的樣子(一位數寫為055 ?是時間12小時還是24小時格式?...)

解析時間的簡單代碼可能如下所示:

try
{
    SimpleDateFormat format = new SimpleDateFormat("H:m");
    Date date = format.parse("15:34");
    int hours = date.getHours(); 
    int min   = date.getMinutes();
}
catch (ParseException e)
{
    // parsing failed
}

有關格式參數的參考,請參閱SimpleDateFormat文檔

如果你真的想讓你的應用程序變得國際化,那么你也應該考慮使用Calendar而不僅僅是Date,就像我在示例中所做的那樣。

如果您知道小時/分鍾/等的位置並且始終相同,則可以使用substring獲取它,然后使用Integer.parseInt將其轉換為數字

String Hora = "12:34";
int hour = Integer.parseInt(Hora.substring(0, 2));
int minute = Integer.parseInt(Hora.substring(3));

String Date = "12/34/5678";
int day = Integer.parseInt(Date.substring(0, 2));
int month = Integer.parseInt(Date.substring(3, 5));
int year = Integer.parseInt(Date.substring(6));

不推薦使用date.getHours(),因此我選擇使用日歷和此問題的最佳答案來更新此問題的答案。

public static int getHour(String hourString) {
    SimpleDateFormat format = new SimpleDateFormat("HH:mm", Locale.US);
    try {
        Date date = format.parse(hourString);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.HOUR_OF_DAY);
    } catch (ParseException e) {
        return Integer.parseInt(hourString.substring(0, 2));
    }
}

暫無
暫無

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

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