【问题标题】:How to convert milliseconds to hh mm ss format and save it in Db如何将毫秒转换为 hh mm ss 格式并将其保存在 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 { 获取;放; }

标签: asp.net-mvc entity-framework asp.net-mvc-4


【解决方案1】:

是不是因为你的时长是00:00:00:016?如果是,默认格式是毫秒。如果不想要毫秒,可以使用:

string stringAHT = duration.ToString(@"hh\:mm\:ss");

如果你想改变其他格式,你可以像这样使用string.Format:

string stringAHT1 = string.Format("{0:D2}h:{1:D2}m:{2:D2}s",
                        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 { 获取;放; }
猜你喜欢
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多