如何将毫秒转换为 hh mm ss 格式并将其保存在 Db 中
Posted
技术标签:
【中文标题】如何将毫秒转换为 hh mm ss 格式并将其保存在 Db 中【英文标题】:How to convert milliseconds to hh mm ss format and save it in Db 【发布时间】:2021-03-14 17:37:52 【问题描述】:我们如何将毫秒显示为 hh:mm:ss 格式。
我所做的所有尝试的结果只是显示 00:00:00:016 或 00:00:00:01320000
控制器动作方法
using(Db db = new Db())
Chat newDTO = db.Chats.Where(x => x.ChatId == id).FirstOrDefault();
DateTime startTime = Convert.ToDateTime(newDTO.FeedbackDateTime);
DateTime endtime = Convert.ToDateTime(newDTO.FeedbackSharedDateTime);
TimeSpan duration = endtime - startTime;
//hh:mm:ss
string stringAHT = duration.ToString(@"hh\:mm\:ss\:fff");
newDTO.AuditorAHT = stringAHT;
db.SaveChanges();
查看
<div class="form-row">
<div class="form-group col-md-4">
<label class="control-label col-md-6 font-weight-bold">AHT</label>
<div class="col-md-10 bg-gray-200 form-control">
@html.DisplayFor(model => model.AuditorAHT)
</div>
</div>
</div>
提前谢谢你
【问题讨论】:
newDTO.FeedbackDateTime和newDTO.FeedbackSharedDateTime的数据类型和值是什么? 公开日期时间?反馈日期时间 得到;放; , public DateTime?FeedbackSharedDateTime get;放; 。那么公开日期时间?反馈日期时间 得到;放; MINUS public DateTime?FeedbackSharedDateTime get;放; 。 = 公共字符串 AuditorAHT 获取;放; 【参考方案1】:是不是因为你的时长是00:00:00:016?如果是,默认格式是毫秒。如果不想要毫秒,可以使用:
string stringAHT = duration.ToString(@"hh\:mm\:ss");
如果你想改变其他格式,你可以像这样使用string.Format:
string stringAHT1 = string.Format("0:D2h:1:D2m:2:D2s",
24*duration.Days+duration.Hours,
duration.Minutes,
duration.Seconds);
这将得到类似xxh:xxm:xxs
的格式
这是一个演示:
DateTime d1 = new DateTime(2020,12,1,11,31,20,11);
DateTime d2 = new DateTime(2020, 12, 2,10,31,20,22);
TimeSpan duration =d2 - d1;
string stringAHT = duration.ToString(@"hh\:mm\:ss");
string stringAHT1 = string.Format("0:D2:1:D2:2:D2",
24*duration.Days+duration.Hours,
duration.Minutes,
duration.Seconds
);
结果:
字符串AHT:23:00:00
字符串AHT1 :23:00:00
更新:
string stringAHT1 = string.Format("0:D2:1:D2:2:D2:3:D2",
24 * duration.Days + duration.Hours,
duration.Minutes,
duration.Seconds,
duration.Milliseconds
);
结果:
00:00:00:14
【讨论】:
没有成功 DateTime d1 = Convert.ToDateTime(newDTO.FeedbackDateTime); DateTime d2 = Convert.ToDateTime(newDTO.FeedbackSharedDateTime); TimeSpan 持续时间 = d2 - d1; string stringAHT = duration.ToString(@"hh\:mm\:ss"); string stringAHT1 = string.Format("0:D2:1:D2:2:D2", 24 * duration.Days + duration.Hours, duration.Minutes, duration.Seconds ); newDTO.AuditorAHT = stringAHT1; 可以分享d1,d2和duration的数据吗 d1 = 2020-12-03 15:43:59.653:d2 = 2020-12-03 15:43:59.667:持续时间 = d2-d1。审计员在特定审计上花费的时间将是 AHT 你的 d2 和持续时间是多少? 模型类公共日期时间? d1 得到;放; 公共日期时间? d2 得到;放; 公共字符串 AuditorAHT 获取;放;以上是关于如何将毫秒转换为 hh mm ss 格式并将其保存在 Db 中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle 中将毫秒转换为 hh mm ss 格式
通过 Javascript 将 DOMTimeStamp 转换为本地化的 HH:MM:SS MM-DD-YY