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