[英]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而不是僅解析整數。 通過這種方式,您可以更好地控制時間和日期的樣子(一位數寫為05或5 ?是時間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.