我做了一些基准测试,看看最快的方法是什么,这些是我的结果和结论。 我运行了每个方法10M次并添加了评论,每次运行的平均时间。

如果您的输入毫秒不限于一天(结果可能是143:59:59.999),这些是从快到慢的选项:

// 0.86 ms

static string Method1(int millisecs)

{

int hours = millisecs / 3600000;

int mins = (millisecs % 3600000) / 60000;

// Make sure you use the appropriate decimal separator

return string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", hours, mins, millisecs % 60000 / 1000, millisecs % 1000);

}

// 0.89 ms

static string Method2(int millisecs)

{

double s = millisecs % 60000 / 1000.0;

millisecs /= 60000;

int mins = millisecs % 60;

int hours = millisecs / 60;

return string.Format("{0:D2}:{1:D2}:{2:00.000}", hours, mins, s);

}

// 0.95 ms

static string Method3(int millisecs)

{

TimeSpan t = TimeSpan.FromMilliseconds(millisecs);

// Make sure you use the appropriate decimal separator

return string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}",

(int)t.TotalHours,

t.Minutes,

t.Seconds,

t.Milliseconds);

}

如果您的输入毫秒数限制为一天(结果将永远不会超过23:59:59.999),则这些选项可以从更快到更慢:

// 0.58 ms

static string Method5(int millisecs)

{

// Fastest way to create a DateTime at midnight

// Make sure you use the appropriate decimal separator

return DateTime.FromBinary(599266080000000000).AddMilliseconds(millisecs).ToString("HH:mm:ss.fff");

}

// 0.59 ms

static string Method4(int millisecs)

{

// Make sure you use the appropriate decimal separator

return TimeSpan.FromMilliseconds(millisecs).ToString(@"hh\:mm\:ss\.fff");

}

// 0.93 ms

static string Method6(int millisecs)

{

TimeSpan t = TimeSpan.FromMilliseconds(millisecs);

// Make sure you use the appropriate decimal separator

return string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}",

t.Hours,

t.Minutes,

t.Seconds,

t.Milliseconds);

}

如果你的输入只是几秒钟,那么方法会稍快一点。 同样,如果您的输入秒数不限于一天(您的结果可能是143:59:59):

// 0.63 ms

static string Method1(int secs)

{

int hours = secs / 3600;

int mins = (secs % 3600) / 60;

secs = secs % 60;

return string.Format("{0:D2}:{1:D2}:{2:D2}", hours, mins, secs);

}

// 0.64 ms

static string Method2(int secs)

{

int s = secs % 60;

secs /= 60;

int mins = secs % 60;

int hours = secs / 60;

return string.Format("{0:D2}:{1:D2}:{2:D2}", hours, mins, s);

}

// 0.70 ms

static string Method3(int secs)

{

TimeSpan t = TimeSpan.FromSeconds(secs);

return string.Format("{0:D2}:{1:D2}:{2:D2}",

(int)t.TotalHours,

t.Minutes,

t.Seconds);

}

如果您的输入秒数限制为一天(您的结果将永远不会超过23:59:59):

// 0.33 ms

static string Method5(int secs)

{

// Fastest way to create a DateTime at midnight

return DateTime.FromBinary(599266080000000000).AddSeconds(secs).ToString("HH:mm:ss");

}

// 0.34 ms

static string Method4(int secs)

{

return TimeSpan.FromSeconds(secs).ToString(@"hh\:mm\:ss");

}

// 0.70 ms

static string Method6(int secs)

{

TimeSpan t = TimeSpan.FromSeconds(secs);

return string.Format("{0:D2}:{1:D2}:{2:D2}",

t.Hours,

t.Minutes,

t.Seconds);

}

作为最后的评论,让我补充一点,如果您使用D2而不是00,我注意到string.Format有点快。

c#时分秒毫秒微妙_c# - 将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...相关推荐

  1. js:秒转换为小时分钟秒格式

    function formatTime(time) { var hours = Math.floor(time / 3600); var minutes = Math.floor(Math.floor ...

  2. (C++)将8000秒换算成小时分钟秒的形式

    分析:(1)1小时为3600秒,那么8000除以3600的商(8000/3600)即为小时: (2)将转换小时后剩余的秒数,即8000除以3600的余数(8000%3600)转为分钟,1小时为60分钟 ...

  3. 将8000秒换算成小时分钟秒的形式(C++)

    #include<iostream>   using namespace std;   int main(){        int a=8000;        int b=a/3600 ...

  4. 将秒转换为小时:分钟:秒

    本文翻译自:Convert seconds to Hour:Minute:Second I need to convert seconds to "Hour:Minute:Second&qu ...

  5. java 根据日期计算当前周一和周日,及根据秒数计算天小时分钟秒数等相关日期

    日期工具类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; ...

  6. 定义一个时钟类(TimeDemo),属性有:时、分、秒(默认值10时30分),方法有展示当前时间、过1秒,过1分钟,过1小时后的时分秒;在测试类中实现过10秒,过10分,过10小时后的时间展示

    题目: 定义一个时钟类(TimeDemo),属性有:时.分.秒(默认值10时30分),方法有展示当前时间.过1秒,过1分钟,过1小时后的时分秒:定义成员方法分别对时.分.秒进行加减运算,保证运算后时间 ...

  7. JavaScript 实现页面内时间实时倒计时 计时器内附完整文件欢迎调用(可用于抢购倒计时,记录恋爱纪念日总时长等)输出对应的天数小时分钟秒数

    JavaScript 实现页面内时间倒计时 计时器 可用于抢购倒计时,记录恋爱纪念日总时长等输出对应的天数小时分钟秒数 注意:在下一个文章中将公布一个纪念日成品代码,欢迎各位来学习(复制) 第一步:构 ...

  8. Java黑皮书课后题第6章:**6.25(将毫秒转化成小时、分钟、秒数)使用下面的方法头,编写一个将毫秒数转换成小时数、分钟数和描述的方法,返回形式如“小时:分钟:秒“

    6.25(将毫秒转化成小时.分钟.秒数)使用下面的方法头,编写一个将毫秒数转换成小时数.分钟数和描述的方法,返回形式如"小时:分钟:秒" 题目 题目描述 破题 代码 运行实例 题目 ...

  9. 毫秒转化天小时分钟秒

    毫秒转化为天小时分钟秒 TimeUtil.java public class TimeUtil {public String formatTime(long ms) {int ss = 1000;in ...

  10. Vue 将毫秒转换为天 小时 分钟 秒 / 毫秒转 小时 分钟

    毫秒转 天 小时 分钟 秒 private formatDuring(mss) {let days = Math.floor(mss / (1000 * 60 * 60 * 24));let hour ...

最新文章

  1. 首个中文多项选择阅读理解数据集:BERT最好成绩只有68%,86%问题需要先验知识...
  2. python3 随机数模块 得到一个10位随机数
  3. 中断/gic代码导读:在哪里配置安全中断的?
  4. 【线上分享】如虎添翼,边缘计算在媒体性能与安全上的实现
  5. 系统集成相关岗位理解
  6. headtail命令
  7. Marvelous Designer 服装设计与模拟
  8. 基于单片机语音控制灯系统设计
  9. 最美遇见最好的你,感谢!
  10. ntfs linux,NTFS-3G (简体中文)
  11. linux 光盘刻录命令,Linux中使用命令进行光盘刻录
  12. 经典上海弄堂线路攻略
  13. win7显示隐藏文件夹的方法
  14. 【微信小程序】点击事件绑定三元方法
  15. 指定locale为en US
  16. 必备工具:使用Pentaho进行数据迁移
  17. tampermonkey自动化学习(持续更新~)
  18. 【高项】- 采购管理论文
  19. 滑动门技术制作不规则按钮
  20. redis的MULTI与PIPELINE

热门文章

  1. 更新品牌与Z世代交互方式|朋氪元宇宙即将内测
  2. 一个屌丝程序员的青春(六四)
  3. Win10右键菜单添加管理员方式打开cmd
  4. 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
  5. 嵌入式Linux内核配置、裁剪与编译浅析(ARM版)
  6. 【vscode】常用快捷键
  7. 如何解决MySql报错:only_full_groupBy
  8. windows: 如何显示文件的全称
  9. Java绘制图形(正方形/三角形/圆/网以及填充颜色)
  10. nova青春版支持鸿蒙吗,华为nova青春版有NFC吗 华为nova青春版支持NFC功能吗