[Java]两个将秒数转化为日时分秒形式的函数
比如900秒要反应一下,说15分就直观了。下面两个函数性能差不多,大家任意取用。
代码:
import java.util.concurrent.TimeUnit; public class TestTime { public static void main(String[] args) { long[] seconds = {3, 300, 3000, 30000, 3000009, 30000000,999999999999L }; long startTime,endTime; for (long s : seconds) { startTime = System.currentTimeMillis(); System.out.print("toDHMSStyle:"+sec2DHMS(s)); endTime = System.currentTimeMillis(); System.out.print(" used "+(endTime-startTime)+"ms\n" ); startTime = System.currentTimeMillis(); System.out.print("calculateTime:"+sec2DHMS1(s)); endTime = System.currentTimeMillis(); System.out.print(" used "+(endTime-startTime)+"ms\n" ); System.out.println(); } } /** * 将秒转化为日时分秒 * @param secondCount * @return */ private static String sec2DHMS(long secondCount) { String retval = null; long days = secondCount / (60 * 60 * 24); long hours = (secondCount % (60 * 60 * 24)) / (60 * 60); long minutes = (secondCount % (60 * 60)) / 60; long seconds = secondCount % 60; String strSeconds=""; if(seconds!=0) { strSeconds=seconds + "s"; } if (days > 0) { retval = days + "d" + hours + "h" + minutes + "m" + strSeconds; } else if (hours > 0) { retval = hours + "h" + minutes + "m" + strSeconds; } else if (minutes > 0) { retval = minutes + "m" + strSeconds; } else { retval = strSeconds; } return retval; } /** * 将秒转化为日时分秒 * @param secondCount * @return */ private static String sec2DHMS1(long secondCount) { String retval = null; int days = (int) TimeUnit.SECONDS.toDays(secondCount); long hours = TimeUnit.SECONDS.toHours(secondCount) - TimeUnit.DAYS.toHours(days); long minutes = TimeUnit.SECONDS.toMinutes(secondCount) - TimeUnit.DAYS.toMinutes(days) - TimeUnit.HOURS.toMinutes(hours); long seconds = TimeUnit.SECONDS.toSeconds(secondCount) - TimeUnit.DAYS.toSeconds(days) - TimeUnit.HOURS.toSeconds(hours) - TimeUnit.MINUTES.toSeconds(minutes); String strSeconds=""; if(seconds!=0) { strSeconds=seconds + "s"; } if (days > 0) { retval = days + "d" + hours + "h" + minutes + "m" + strSeconds; } else if (hours > 0) { retval = hours + "h" + minutes + "m" + strSeconds; } else if (minutes > 0) { retval = minutes + "m" + strSeconds; } else { retval = strSeconds; } return retval; } }
输出:
toDHMSStyle1:3s used 0ms toDHMSStyle2:3s used 2ms toDHMSStyle1:5m used 0ms toDHMSStyle2:5m used 0ms toDHMSStyle1:50m used 0ms toDHMSStyle2:50m used 0ms toDHMSStyle1:8h20m used 0ms toDHMSStyle2:8h20m used 0ms toDHMSStyle1:34d17h20m9s used 0ms toDHMSStyle2:34d17h20m9s used 0ms toDHMSStyle1:347d5h20m used 0ms toDHMSStyle2:347d5h20m used 0ms toDHMSStyle1:11574074d1h46m39s used 0ms toDHMSStyle2:11574074d1h46m39s used 0ms
--END-- 2019.11.08
[Java]两个将秒数转化为日时分秒形式的函数的更多相关文章
- sqlite3把字段为int32(用c++的time(nullptr)获取的)的秒数显示为年月日时分秒
select id, type, msg, datetime(updateTime, 'unixepoch', 'localtime') from ServerLog
- C#- 将秒数转化成任意时间格式
将秒数转化成任意时间格式,可以使用C#的一个函数TimeSpan,看示例: TimeSpan ts = new TimeSpan(0, 0, 3661); richTextBox2.Text = ts ...
- php如何计算两个时间戳之间相差的日时分秒
/功能:计算两个时间戳之间相差的日时分秒//$begin_time 开始时间戳//$end_time 结束时间戳function timediff($begin_time,$end_time){ if ...
- C# 使用TimeSpan秒数转化为时分秒的写法
1.TimeSpan的生成方法 // 参数: // ticks: // A time period expressed in 100-nanosecond units. public TimeSpan ...
- java.sql.date与java.util.date区别以及数据库中插入带时分秒的时间
java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Da ...
- PHP 小方法之 计算两个时间戳之间相差的日时分秒
if(! function_exists ('timediff') ) { function timediff($begin_time,$end_time){ if($begin_time < ...
- iOS 秒数转换成时间,时,分,秒
//转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds = totalSeconds % 60; int min ...
- JAVA将秒的总和转换成时分秒的格式
public static void main(String[] args) { String str = "221"; int seconds = Integer.parseIn ...
- sql计算两个时间之间的差,并用时分秒表示
这是自己写的方法,总觉得会有更好的办法实现这个效果呢? SELECT then ))))+'秒' then )))+'秒' then ))+'秒' else CONVERT(nvarchar,DATE ...
随机推荐
- C#基础 - 定义变量,输入输出
本节课主要讲解C#的发展历史及部分C#语言基础, 主要内容有:控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值 打印,两种数据类型,整形类型转换 本节重点难点:定义变量 ...
- tcping端口检测工具使用
大家都知道检测网络状态是,无论是服务器/客户机 最常用的就是ping命令,但ping命令只能检测ICMP协议,若对方禁止ping协议了,自然ping命令也就无法检测了,此时,我们可以通过tcping工 ...
- 第十三篇:socket网络编程
本篇主要介绍网络编程的基础,以及UDP/TCP网络的socket编程,关于UDP套接字聊天器的实现.以及基于TCP套接字的服务器/客户端的实现上传下载功能. 一.网络通信 关于网络通信即通过网络(介质 ...
- Django中过滤的实现
过滤模块 安装 >: pip install django-filter 注册应用:settings/dev.py INSTALLED_APPS = [ # 列表过滤模块 'django_fil ...
- 我花了2个月时间,整理了100篇Linux技术精华,技术人必看
一个以技术为立身根基的教育机构做出来的微信号,干货程度会有多高? 马哥Linux运维公众号运营五年,从一开始的定位就是给技术人分享加薪干货的地方.这五年里,公众号运营最重的任务就是做内容.内容并不好做 ...
- 1127 模型层orm表操作
目录 昨日回顾 模型层 1.配置测试脚本 1.1 应用下tests文件 1.2 新建任意名称文件 2. 数据的增删改查 2.1 创建数据 2.2 修改数据 2.3 删除数据 2.4查询数据 十三门徒 ...
- Robot Framework--完整的接口测试用例
*** Settings *** Library Collections Library json Library requests Library RequestsLibrary Library H ...
- SQL SERVER表压缩
概述 SQL Server的主要性能取决于磁盘I/O效率,SQL Server .2008提供了数据压缩功能来提高磁盘I/O效率.表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆表.聚集索引的表. ...
- NoClassDefFoundError错误发生的原因
今上午项目怎么也起不来,总报这个错,上网查一下,大概解释如下:NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误.例如 ...
- Hive窗口函数案例详解
语法: 分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 常用分析函数: 聚合类 avg().sum().max(). ...