如何从一个字符串变量中获取小时和分钟?

3

我有一个String time = "13:10"。我想知道最好的方法是如何获取小时和分钟并将它们转换成整数,例如int hours = 13,int minute = 10。我知道for循环不是最有效的方式,有什么更简单的方法吗?


1
你从哪里获取这个“timme”字符串,是从日期选择器、时间选择器或类似的组件中获取的吗? - i.n.e.f
请查看此链接:https://dev59.com/6XLYa4cB1Zd3GeqPc-Q6 - Rachita Nanda
1
如果它只是一个字符串,你可以使用string.split()方法。 - Sonali8890
你是否正在以固定格式获取时间?那么分割字符串怎么样? - Sahil Mahajan Mj
我正在从时间选择器中获取时间,现在我已经有了解决方案。使用.split()方法。谢谢大家。 - user2219097
5个回答

22

试试这种方式,使用 split() 方法,

String timme = "13:10";
String[] time = timme.split ( ":" );
int hour = Integer.parseInt ( time[0].trim() );
int min = Integer.parseInt ( time[1].trim() );

1
@user2219097,如果您接受我的答案,我会非常感激 :) - user3317558
+1,我也是这么想的。但是为什么你使用了 **trim()**? - Sahil Mahajan Mj
@SahilMahajanMj,这是一项安全步骤,以避免任何空格。 - user3317558
@user3317558:你在SO上做得真的很好。很高兴看到你在加入的第一天就如此热心地回答问题。 - Sahil Mahajan Mj
@SahilMahajanMj 谢谢您,先生。 - user3317558

11

最好使用 DateDateFormat

String time = "13:10";

DateFormat sdf = new SimpleDateFormat("HH:mm"); // or "hh:mm" for 12 hour format
Date date = sdf.parse(time);

date.getHours(); // int
date.getMinutes(); // int

2
您可以尝试这个...
String time = "13:10";
SimpleDateFormat formatter =  = new SimpleDateFormat("hh:mm");
Date dTime = formatter.parse(time);
int hour = dTime.getHours();
int minute = dTime.getMinutes();

2
如果时间为 "9:10" 呢?或者时间为 "10:9" 呢? - user3317558
3
如果时间是“6:10”,该怎么办? - Sahil Mahajan Mj

2
您可以使用Java的Calendar对象来代替Date对象。
SimpleDateFormat dateFormatter = new SimpleDateFormat("HH:mm", Locale.ENGLISH);
        try {
            Calendar c = Calendar.getInstance();
            c.setTime(dateFormatter.parse("07:30"));
            String hour = String.valueOf(c.get(Calendar.HOUR_OF_DAY));
            String mintue = String.valueOf(c.get(Calendar.MINUTE));
            System.out.println("Hour: " + hour);
            System.out.println("Minute: " + mintue);
        } catch (ParseException e) {
            e.printStackTrace();
        }

1

JAVA 8

    LocalTime localTime = LocalTime.parse("13:10", DateTimeFormatter.ofPattern("HH:mm"));
    int hour = localTime.getHour();
    int minute = localTime.getMinute();
    System.out.println("Hours : "+hour +" Minutes : "+minute);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接