1

この形式の文字列変数があります"HH:mm"。変数の値が 05:30 だとしましょう。

これらの数値を文字列から取得して計算するにはどうすればよいでしょうか。

(05 * 60 * 60 * 1000) + (30 * 60 * 1000) その数値 (ミリ秒) を新しい long 変数に入れます。

基本的に、文字列の時間変数をミリ秒の長さの変数に変換する必要があります。

4

3 に答える 3

3

対象の文字列を含め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");
    }

価値があるのは、1 日は 86,400,000 ミリ秒しかないため、long. アンintは十分に大きいです。

于 2013-03-22T02:32:47.140 に答える
2

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());        
于 2013-03-22T02:26:54.357 に答える
1
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();
}

SimpleDateFormatを使用する

于 2013-03-22T02:33:17.107 に答える