c#时分秒毫秒微妙_c# - 将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...
我做了一些基准测试,看看最快的方法是什么,这些是我的结果和结论。 我运行了每个方法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# - 将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...相关推荐
- js:秒转换为小时分钟秒格式
function formatTime(time) { var hours = Math.floor(time / 3600); var minutes = Math.floor(Math.floor ...
- (C++)将8000秒换算成小时分钟秒的形式
分析:(1)1小时为3600秒,那么8000除以3600的商(8000/3600)即为小时: (2)将转换小时后剩余的秒数,即8000除以3600的余数(8000%3600)转为分钟,1小时为60分钟 ...
- 将8000秒换算成小时分钟秒的形式(C++)
#include<iostream> using namespace std; int main(){ int a=8000; int b=a/3600 ...
- 将秒转换为小时:分钟:秒
本文翻译自:Convert seconds to Hour:Minute:Second I need to convert seconds to "Hour:Minute:Second&qu ...
- java 根据日期计算当前周一和周日,及根据秒数计算天小时分钟秒数等相关日期
日期工具类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; ...
- 定义一个时钟类(TimeDemo),属性有:时、分、秒(默认值10时30分),方法有展示当前时间、过1秒,过1分钟,过1小时后的时分秒;在测试类中实现过10秒,过10分,过10小时后的时间展示
题目: 定义一个时钟类(TimeDemo),属性有:时.分.秒(默认值10时30分),方法有展示当前时间.过1秒,过1分钟,过1小时后的时分秒:定义成员方法分别对时.分.秒进行加减运算,保证运算后时间 ...
- JavaScript 实现页面内时间实时倒计时 计时器内附完整文件欢迎调用(可用于抢购倒计时,记录恋爱纪念日总时长等)输出对应的天数小时分钟秒数
JavaScript 实现页面内时间倒计时 计时器 可用于抢购倒计时,记录恋爱纪念日总时长等输出对应的天数小时分钟秒数 注意:在下一个文章中将公布一个纪念日成品代码,欢迎各位来学习(复制) 第一步:构 ...
- Java黑皮书课后题第6章:**6.25(将毫秒转化成小时、分钟、秒数)使用下面的方法头,编写一个将毫秒数转换成小时数、分钟数和描述的方法,返回形式如“小时:分钟:秒“
6.25(将毫秒转化成小时.分钟.秒数)使用下面的方法头,编写一个将毫秒数转换成小时数.分钟数和描述的方法,返回形式如"小时:分钟:秒" 题目 题目描述 破题 代码 运行实例 题目 ...
- 毫秒转化天小时分钟秒
毫秒转化为天小时分钟秒 TimeUtil.java public class TimeUtil {public String formatTime(long ms) {int ss = 1000;in ...
- Vue 将毫秒转换为天 小时 分钟 秒 / 毫秒转 小时 分钟
毫秒转 天 小时 分钟 秒 private formatDuring(mss) {let days = Math.floor(mss / (1000 * 60 * 60 * 24));let hour ...
最新文章
- 首个中文多项选择阅读理解数据集:BERT最好成绩只有68%,86%问题需要先验知识...
- python3 随机数模块 得到一个10位随机数
- 中断/gic代码导读:在哪里配置安全中断的?
- 【线上分享】如虎添翼,边缘计算在媒体性能与安全上的实现
- 系统集成相关岗位理解
- headtail命令
- Marvelous Designer 服装设计与模拟
- 基于单片机语音控制灯系统设计
- 最美遇见最好的你,感谢!
- ntfs linux,NTFS-3G (简体中文)
- linux 光盘刻录命令,Linux中使用命令进行光盘刻录
- 经典上海弄堂线路攻略
- win7显示隐藏文件夹的方法
- 【微信小程序】点击事件绑定三元方法
- 指定locale为en US
- 必备工具:使用Pentaho进行数据迁移
- tampermonkey自动化学习(持续更新~)
- 【高项】- 采购管理论文
- 滑动门技术制作不规则按钮
- redis的MULTI与PIPELINE
热门文章
- 更新品牌与Z世代交互方式|朋氪元宇宙即将内测
- 一个屌丝程序员的青春(六四)
- Win10右键菜单添加管理员方式打开cmd
- 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
- 嵌入式Linux内核配置、裁剪与编译浅析(ARM版)
- 【vscode】常用快捷键
- 如何解决MySql报错:only_full_groupBy
- windows: 如何显示文件的全称
- Java绘制图形(正方形/三角形/圆/网以及填充颜色)
- nova青春版支持鸿蒙吗,华为nova青春版有NFC吗 华为nova青春版支持NFC功能吗