当前位置: 首页 > 知识库问答 >
问题:

将秒转换为小时、分钟和秒?

华星剑
2023-03-14

因此,我试图制作一个程序,可以将s从输入转换为h、m和s。到目前为止,我的代码如下所示:

import java.util.Scanner;

class q2_5{
  public static void main(String args[]){

    Scanner input = new Scanner(System.in);
    int s=0;//seconds
    int m=0;//minutes
    int h=0;//hour
    System.out.println("how many seconds?");
    s=input.nextInt();
    if(s >= 60){
      m=s/60;
    } if(m>=60){
      h=m/60;
    }
    System.out.println(s + "s = " + h + " h " + m + " m " + s + "s ");
  }
}

好的,所以我必须将s,m,h初始化为0,因为如果不是的话,我在if语句中遇到了问题,所以我把它设置为0,因为我可以稍后更改:)好的。所以现在这个程序的问题是,如果我输入3603,我会得到这个输出:3603s=1H60M3603s,如果我输入3600,我会得到:3600s=1H60M3600s,但输出应该分别是3603s=1H0M3s和3600s=1H0M0s。关于如何解决这个问题,有什么提示/建议/解决方案吗?:D提前谢谢!

共有3个答案

锺高翰
2023-03-14

Java8为日期和时间操作带来了一个很好的应用编程接口。

import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Converter {

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");

    public String convert(int seconds) {
        LocalTime time = LocalTime.MIN.plusSeconds(seconds).toLocalTime();

        return formatter.format(time);
    }
}

基本上,这段代码将秒数添加到支持的最小日期时间,自然,HH: mm: ss等于00:00:00。

由于您只对时间感兴趣,您可以通过调用toLocalTime()来提取它,并根据需要对其进行格式化。

周玺
2023-03-14

显然你正在做一些家庭作业/练习来学习Java。但是仅供参考,在实际工作中,你不需要做那些计算和操作。有一个班。

在一段时间内,使用Duration类。你不需要做数学题。

Duration d = Duration.ofSeconds( s );

标准ISO 8601格式的字符串表示未附加到时间线的时间跨度,它与您所需的输出非常接近:PnYnMnDTnHnMnS,其中P标记开始,T将任何年、月、日与任何时、分、秒分开。所以一个半小时是PT1H30M

爪哇。时间类在解析或生成字符串时默认使用ISO 8601格式。

String output = d.toString() ;

在Java9及以后,可以调用到...part方法检索小时、分钟和秒的各个部分。

爪哇。时间框架内置于Java8及更高版本中。这些类取代了麻烦的旧遗留日期时间类,比如java。util。日期日历

要了解更多信息,请参阅Oracle教程。并搜索堆栈溢出以获得许多示例和解释。规格是JSR 310。

现在处于维护模式的Joda-Time项目建议迁移到java.time类。

你可以交换java。时间对象直接与数据库连接。使用符合JDBC 4.2或更高版本的JDBC驱动程序。不需要字符串,也不需要java。sql* 类。冬眠5

在哪里获得java.time类?

  • JavaSE8、JavaSE9、JavaSE10、JavaSE11及更高版本——标准JavaAPI的一部分,带有捆绑实现。
  • 大部分的java应用程序。时间功能被重新移植到Java 6
  • Android(26)的更高版本捆绑了java的实现。时间课

段干跃
2023-03-14

我的解决方案是:

 String secToTime(int sec) {
    int second = sec % 60;
    int minute = sec / 60;
    if (minute >= 60) {
        int hour = minute / 60;
        minute %= 60;
        return hour + ":" + (minute < 10 ? "0" + minute : minute) + ":" + (second < 10 ? "0" + second : second);
    }
    return minute + ":" + (second < 10 ? "0" + second : second);
}
 类似资料:
  • 问题内容: 我需要将秒转换为“小时:分钟:秒”。 例如:“ 685”转换为“ 00:11:25” 我该如何实现? 问题答案: 您可以使用以下功能:

  • 我是Python新手,遇到了这个问题。我想创建一个程序,用户输入秒数,并将其转换为天、小时、分钟和秒。然而,例如,我希望程序在100000秒内输出1天、3小时、46分钟、40秒。然而,mine也用小数输入计算结果,比如说1.157天,其他类别也一样。任何帮助都将不胜感激,非常感谢。

  • 问题内容: 我一直在尝试将秒值(在BigDecimal变量中)转换为editText之类的字符串,例如“ 1小时22分33秒”或类似的内容。 我已经试过了: (我有一个roundThreeCalc值,以秒为单位,所以我尝试在这里进行转换。) 然后,将editText设置为sequnceCaptureTime String。但这没有用。每次都强制关闭该应用程序。我完全不在这里,我们将不胜感激。祝您编

  • 问题内容: 我在Microsoft SQL Server 2008R2中有一个bigint字段,其中充满了刻度线(单个刻度线代表一百纳秒或一千万分之一秒。在一毫秒内有10,000个刻度。) http://msdn.microsoft.com/zh- CN/library/system.datetime.ticks.aspx 我需要将所有记录的总和转换为Days:Hours:Minutes:Seco

  • 问题内容: 我有一个以秒为单位返回信息的函数,但我需要以小时:分钟:秒存储该信息。 有没有简单的方法可以在Python中将秒转换为这种格式? 问题答案: 你可以使用功能:

  • 我是Momentjs的新手。我试着用它把毫秒转换成小时和分钟。下面,x是毫秒 有人能帮忙吗?