在JAVA中将秒转换为W、D、H、M格式

在JAVA中将秒转换为W、D、H、M格式,java,seconds,time-format,Java,Seconds,Time Format,我有以秒为单位的时间,我想把它转换成像6w 3d 9h 5m这样的格式。有人能提供一种方法来完成这项任务吗。谢谢:) w=周 d=天 h=小时 m=分钟 我已经尝试了下面的代码,但我没有得到几个星期使用 int day = (int)TimeUnit.SECONDS.toDays(seconds); long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.SECONDS.toHours(TimeUnit.SECONDS.

我有以秒为单位的时间,我想把它转换成像6w 3d 9h 5m这样的格式。有人能提供一种方法来完成这项任务吗。谢谢:) w=周 d=天 h=小时 m=分钟

我已经尝试了下面的代码,但我没有得到几个星期使用

int day = (int)TimeUnit.SECONDS.toDays(seconds);        
long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.SECONDS.toHours(TimeUnit.SECONDS.toDays(seconds));
long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.SECONDS.toMinutes(TimeUnit.SECONDS.toHours(seconds));
System.out.println("Day :"+day+" Hours :"+hours+" Minutes :"+minute); 
将打印:

163w 2d 2h 50m
将打印:

163w 2d 2h 50m
这将为您提供:

1w 4d 10h 20m
应该有更优雅的方式,但这是可行的:

long s = 987654l;
        final long M=60,H=60*M, D=24*H, W=7*D; 
        long w = s/W;
        s%=W; 
        long d = s/D;
        s%=D; 
        long h = s/H;
        s%=H; 
        long m = s/M;

        System.out.printf("%dw %dd %dh %dm",w,d,h,m);
这将为您提供:

1w 4d 10h 20m
应该有更优雅的方式,但这是可行的:

long s = 987654l;
        final long M=60,H=60*M, D=24*H, W=7*D; 
        long w = s/W;
        s%=W; 
        long d = s/D;
        s%=D; 
        long h = s/H;
        s%=H; 
        long m = s/M;

        System.out.printf("%dw %dd %dh %dm",w,d,h,m);

在这种情况下,我没有几个星期的时间。还发现我无法使用周TimeUnit@Mizan当前位置请把它放到问题中……在这种情况下,我没有几个星期的时间。还发现我无法使用周TimeUnit@Mizan当前位置请把它放到问题中…我试过这个。。它不会给出正确的结果,每周都是1。谢谢:)刚刚试过,604801说你有一周,1209602说你有两周,98765410试过了,我得到163w 2d 27386h 50m。你能帮忙吗?谢谢,它对我有用,我只是忘了从小时中减去天。我认为你的“从w d h m到秒的转换”方法不正确,请检查我试过这个。。它不会给出正确的结果,每周都是1。谢谢:)刚刚试过,604801说你有一周,1209602说你有两周,98765410试过了,我得到163w 2d 27386h 50m。你能帮忙吗?谢谢,它对我有用,我只是忘了从小时中减去天。我认为你的“从w d h m到秒的转换”方法不正确,请检查它