相关疑难解决方法(0)

我如何在.NET中使用自定义格式String.Format一个TimeSpan对象?

TimeSpan使用自定义格式将对象格式化为字符串的推荐方法是什么?

.net c# string formatting time

179
推荐指数
8
解决办法
12万
查看次数

为什么TimeSpan.ParseExact不起作用

这有点奇怪.如果我想要精确的话,解析具有有效时间跨度的文本字段会失败!

const string tmp = "17:23:24";
//works
var t1 = TimeSpan.Parse(tmp);
//fails
var t2 = TimeSpan.ParseExact(tmp, "hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

第二个解析失败,异常"输入字符串格式不正确".来自DateTime.

c# parsing timespan

37
推荐指数
3
解决办法
2万
查看次数

时间跨度格式化

你如何优雅地格式化时间跨度,例如"1小时10分钟",当你声明它时:

TimeSpan t = new TimeSpan(0, 70, 0);
Run Code Online (Sandbox Code Playgroud)

我当然知道你可以为此做一些简单的数学运算,但我有点希望.NET中有一些东西能够为我处理这个问题 - 对于更复杂的场景

重复我如何的String.format在.NET中的自定义格式TimeSpan对象?

.net c# timespan

26
推荐指数
3
解决办法
3万
查看次数

C#中的TimeSpan"漂亮时间"格式

输入这个问题的标题让我想到了这个问题.我正在寻找相同的东西,但如果你理解我的意思,可能不那么静态地格式化了什么?

我正在编写一个快速程序,它将使用两个DateTime对象的TimeSpan持续时间并输出它们以便打印到纸上.

首选的格式是:( XX days, YY hours, ZZ minutes秒是无关紧要的;因为我不希望时间跨度超过几个小时).

说下面的代码(作为例子):

DateTime start = DateTime.Now;
DateTime end = DateTime.Now.AddMinutes(135);
TimeSpan duration = (end - start);

// output duration as XX hours, YY minutes
Run Code Online (Sandbox Code Playgroud)

谢谢,
扎克

PS我也跑过" PrettyTime.NET ",但它输出的内容就像"3天前"等等.我在google上找到的其他主题用来格式化持续时间字符串,就像上面的例子一样,这使我得到了一个基于Java的解决方案.:\


更新2014-09-08:

为了在3年后进行跟进,我在NuGet和Github上找到了一个很棒的库,名为" Humanizer ",可以解决我遇到的这个问题.我没有那么多使用它,但我确实尝试了它并且它的工作非常好.它虽然是一个相当大的库(它为你的项目的构建路径发出了不同文化的大量文件夹(我确信有一种方法可以自定义它)).

c# formatting timespan

18
推荐指数
3
解决办法
1万
查看次数

格式化减去日期c#

我想在c#中相互减去两个日期.我当前的代码如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    System.DateTime matchStart = new System.DateTime(2012, 10, 17, 20, 00, 00);
    System.DateTime currentDateTime = new System.DateTime(2012, 10, 9, 14, 00, 00);

    System.TimeSpan matchCountdown = matchStart.Subtract(currentDateTime);

    countdown.Text = matchCountdown.ToString();
}
Run Code Online (Sandbox Code Playgroud)

这目前给我的结果是"8.06:00:00".然而,我想要做的是将时间差格式化为"8天,6小时,0分钟".我怎么能这样做呢?

任何帮助深表感谢!

c# formatting datetime

2
推荐指数
1
解决办法
1385
查看次数

C#获取两个DateTime日期之间的差异

所以我正在开发这个具有日期功能的小应用程序(显示日,月,年等的差异)现在做"选定日期是14151天,465个月和39年前"这样的事情很容易,但怎么能我是以可读的格式("15天,7个月和39年前")说出来的?

现在要做到这一点,我已经设定了多年来的差异

int years = selectedDate.Year - currentDate.Year
Run Code Online (Sandbox Code Playgroud)

几个月和几天相同.然而,这几乎没有用,特别是当前进一个月时(因为它可能会说15天和1个月因为date1.Day - date2.Day = 15,而实际上可能是8天.我认为这是因为日期的工作方式与几个月的东西,但我不确定.

无论如何,我希望我有任何意义,因为我甚至无法真正跟踪自己.任何想法都非常感谢.:d

c# datetime date visual-studio-2010

1
推荐指数
1
解决办法
1586
查看次数

在ASP.NET中计算时间

可能重复:
如何计算相对时间?

在SO上发布内容时显示发布5 mins ago1hr ago.如何计算时间并以相同方式显示?

asp.net datetime timespan

0
推荐指数
1
解决办法
1550
查看次数

在c#中将十进制值转换为时间格式

我目前正在从数据库中获取2个日期并找出它们之间的差异.我在视图页面中显示总和的值,但它当前显示为小数.例如,产生的值之一是1585.913,但我想用HH:MM:SS格式.

我当前显示小数值的代码如下所示.

调节器

public ActionResult Execution(int id = 0)
    {
        Execution execution = db.Executions.Find(id);

        if (execution == null)
        {
            return HttpNotFound();
        }

        ViewBag.ExecutionSeconds = (execution.End - execution.Start).TotalSeconds;

        return View(execution);

    }
Run Code Online (Sandbox Code Playgroud)

视图

@ViewBag.ExecutionSeconds
Run Code Online (Sandbox Code Playgroud)

我必须对此代码进行哪些更改才能以HH:MM:SS格式显示该值?

提前致谢.

c#

-1
推荐指数
1
解决办法
1004
查看次数