我有一個字符串變量,其格式爲"HH:mm"
。 可以說變量值是05:30。Android字符串變量(HH:mm)爲長變量毫秒
我將如何能夠從字符串獲取這些數字和計算:
(05 * 60 * 60 * 1000)+(30 * 60 * 1000),並放入一個新的長這個數字(毫秒)變量。
基本上我需要將字符串時間變量轉換爲毫秒長的變量。
我有一個字符串變量,其格式爲"HH:mm"
。 可以說變量值是05:30。Android字符串變量(HH:mm)爲長變量毫秒
我將如何能夠從字符串獲取這些數字和計算:
(05 * 60 * 60 * 1000)+(30 * 60 * 1000),並放入一個新的長這個數字(毫秒)變量。
基本上我需要將字符串時間變量轉換爲毫秒長的變量。
讓s
含有感興趣的字符串。然後例如你可以說
String s = "5:30";
Pattern p = Pattern.compile("(\\d+):(\\d+)");
Matcher m = p.matcher(s);
if (m.matches()) {
int hrs = Integer.parseInt(m.group(1));
int min = Integer.parseInt(m.group(2));
long ms = (long) hrs * 60 * 60 * 1000 + min * 60 * 1000;
System.out.println("hrs="+hrs+" min="+min+" ms="+ms);
} else {
throw Exception("Bad time format");
}
對於它的價值,只有86,400,000一天毫秒,所以你不需要long
。 int
足夠大。
可以使用SimpleDateFormat
類
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String inputString = yourTime + ":00.000"; //Added to string to make HH:mm:ss.SSS format
Date date = sdf.parse("1970-01-01 " + inputString);
System.out.println("in milliseconds: " + date.getTime());
public static void main(String[] args) throws IOException {
SimpleDateFormat simpleDateFormate = new SimpleDateFormat("HH:mm");
simpleDateFormate.setTimeZone(TimeZone.getTimeZone("UTC"));
String inputString = "05:30";
Date date = null;
try {
date = simpleDateFormate.parse(inputString);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("in millSeconds: " + date.getTime());
long yourvar=date.getTime();
}
以任何機會,你是左撇子?謝謝。 – Gene 2013-03-22 02:48:46
@基因呃,我是右撇子。我可以問爲什麼你想知道嗎? – 2013-03-22 02:55:43
我不是指任何不敬。一位朋友有一個理論認爲,左撇子和右撇子的人有着根本不同的看問題的方式。你的解決方案與我看待這個問題的方式相去甚遠,我不得不測試這個理論。我也是右撇子。猜猜我們不是一個證明......乾杯。 – Gene 2013-03-22 03:01:09