我需要计算从特定日期到现在所用的时间,并以与StackOverflow问题相同的格式显示它,即:
15s ago
2min ago
2hours ago
2days ago
25th Dec 08
Run Code Online (Sandbox Code Playgroud)
您知道如何使用Java Joda-Time库实现它吗?是否有一个已经实现它的辅助方法,或者我应该自己编写算法?
我需要将表单的持续时间字符串解析98d 01h 23m 45s为毫秒.
我希望有相当于这样的SimpleDateFormat持续时间,但我找不到任何东西.是否有人建议赞成或反对尝试使用SDF用于此目的?
我目前的计划是使用正则表达式来匹配数字并执行类似的操作
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher("98d 01h 23m 45s");
if (m.find()) {
int days = Integer.parseInt(m.group());
}
// etc. for hours, minutes, seconds
Run Code Online (Sandbox Code Playgroud)
然后使用TimeUnit将它们放在一起并转换为毫秒.
我想我的问题是,这看起来有点矫枉过正,可以做得更容易吗?关于日期和时间戳的很多问题都出现了,但这可能有点不同.
我到处寻找将秒转换为hh:mm:ss但找不到合适的
我创建了一个程序,允许用户输入两个不同的时间,然后计算差异
输入的时间分为hh*3600 - mm*60 - ss然后转换为秒并相互减去以秒为单位计算差异
例如12:12:12和13:13:13会给我3661秒,但我不知道如何将差异转换回hh:mm:ss
任何帮助,将不胜感激
我想找到两个日期/时间之间的日,小时,分钟和秒.我以为我可以使用句号,我尝试了下面的代码,但我得到了一个非荒谬的答案.
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)
不确定这是什么意思.
谢谢你的帮助