Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将午夜后的分钟数转换为24小时_Java_Simpledateformat - Fatal编程技术网

Java 将午夜后的分钟数转换为24小时

Java 将午夜后的分钟数转换为24小时,java,simpledateformat,Java,Simpledateformat,从午夜开始我还有几分钟 例如3Am表示为=180(使用3*60查找) 现在我需要将其转换为小时格式 我们如何使用简单的日期格式化程序/日历进行此操作?我会使用数学,强制日期时间库执行此操作不会更简单(因为它需要毫秒和时区) 用日历做同样的事情(你可以用它来处理夏令时) 印刷品 03:00 然而,在夏令时改变的日子里,你可以得到02:00或04:00,这是正确的,就像往常一样 乔达时间 我的附加价值是给出一个具有替代库的示例,因为java.util.Date和.Calendar类非常麻烦,应该

从午夜开始我还有几分钟

例如3Am表示为=
180
(使用
3*60
查找)

现在我需要将其转换为小时格式


我们如何使用简单的日期格式化程序/日历进行此操作?

我会使用数学,强制日期时间库执行此操作不会更简单(因为它需要毫秒和时区)


用日历做同样的事情(你可以用它来处理夏令时)

印刷品

03:00
然而,在夏令时改变的日子里,你可以得到02:00或04:00,这是正确的,就像往常一样

乔达时间 我的附加价值是给出一个具有替代库的示例,因为java.util.Date和.Calendar类非常麻烦,应该避免

当地时间 Joda Time和new in(受Joda Time的启发)都提供了一个只表示时间的类,没有任何日期或时区。听起来这适用于你的需要

只要确保您不需要超过本地时间。如果此数据是指巴黎午夜后的分钟数,并且您可能会混入表示纽约或奥克兰日期时间的其他数据,那么您应该使用该类而不是LocalTime。天真的程序员认为/希望忽略时区会使事情变得更简单,这会带来大麻烦

示例代码 Joda Time2.4中的一些示例代码

// Input
int minutes = 180;
int millisecondsSinceAnyMidnight = ( minutes * 60 * 1000 );
LocalTime localTime = LocalTime.fromMillisOfDay( millisecondsSinceAnyMidnight );

// Output
String outputDefault = localTime.toString();
DateTimeFormatter formatter = DateTimeFormat.forPattern( "HH:mm" );
String outputHHMM = formatter.print( localTime );

// Dump to console.
System.out.println( "outputDefault: " + outputDefault );
System.out.println( "outputHHMM: " + outputHHMM );
跑步的时候

outputDefault:03:00:00.000
输出时间:03:00

当然,假设午夜后的几分钟在同一时区,忽略DST。或者今天就是一天。以何种方式连接到您时区中的当前日期和时间?时间间隔的计算最好不参考特定的日历,即时间点到以y、m、d、h、m、s表示的特定推算的映射。
03:00
// Input
int minutes = 180;
int millisecondsSinceAnyMidnight = ( minutes * 60 * 1000 );
LocalTime localTime = LocalTime.fromMillisOfDay( millisecondsSinceAnyMidnight );

// Output
String outputDefault = localTime.toString();
DateTimeFormatter formatter = DateTimeFormat.forPattern( "HH:mm" );
String outputHHMM = formatter.print( localTime );

// Dump to console.
System.out.println( "outputDefault: " + outputDefault );
System.out.println( "outputHHMM: " + outputHHMM );