我想找到两个日期/时间之间的日,小时,分钟和秒.我以为我可以使用句号,我尝试了下面的代码,但我得到了一个非荒谬的答案.
DateTime dt1 = new DateTime("2004-12-13T21:39:45.618-06:00");
DateTime dt2 = new DateTime("2004-12-13T21:39:45.618-08:00");
Period p = new Period(dt1, dt2);
System.out.println("Test: " + p);
Run Code Online (Sandbox Code Playgroud)
从这里我得到输出:
I/System.out: Test: PT2H
Run Code Online (Sandbox Code Playgroud)
不确定这是什么意思.
谢谢你的帮助
toString()method in Period为您提供ISO8601持续时间格式的值.
来自API:
以ISO8601持续时间格式的样式获取值作为String.从技术上讲,输出可能违反ISO规范,因为可能包含数周.例如,"PT6H3M5S"代表6小时,3分钟,5秒.
当您要求单独获取日期,小时,分钟和秒时,您可以使用getAPI中的便捷方法:
import org.joda.time.DateTime;
import org.joda.time.Period;
...
DateTime dt1 = new DateTime("2004-12-13T21:39:45.618-06:00");
DateTime dt2 = new DateTime("2004-12-13T21:39:45.618-08:00");
Period p = new Period(dt1, dt2);
System.out.println("DAYS: " + p.getDays())
System.out.println("HOURS: " + p.getHours());
System.out.println("MINUTES: " + p.getMinutes());
System.out.println("SECONDS: " + p.getSeconds());
Run Code Online (Sandbox Code Playgroud)
或者作为其他答案建议使用PeriodFormatter.
| 归档时间: |
|
| 查看次数: |
2739 次 |
| 最近记录: |