标签: timespan

如何实现字符串转换的时间跨度?

我试着在这里搜索,但它对我帮助不大..
我想 time_span 转换为字符串,我不想在几天内返回时间跨度......但只有HH:mm:ss.怎么实现呢?

我的示例代码在这里:

              String time_span_par = "06:12:40";
              String time_str = "18:13:59";
              TimeSpan time_span_var = TimeSpan.Parse(time_span_par);
              TimeSpan time_span = TimeSpan.Parse(time_str);

              time_span = time_span.Add(time_span_var);
              string temp = time_span.ToString("HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

c# string timespan datetime-format

9
推荐指数
2
解决办法
9876
查看次数

Asp.NET MVC 2中的通用TimeSpan绑定

我有一个绑定到模型的输入表单.该模型具有TimeSpan属性,但只有当我输入时间为hh:mm或hh:mm:ss时,它才能正确获取值.我想要的是它捕获值,即使它被写为hhmm或hh.mm或hh.mm.ss或...我想要正确解析许多不同的格式.这可能吗?

谢谢!

.net timespan modelbinders asp.net-mvc-2

9
推荐指数
2
解决办法
2946
查看次数

如何格式化TimeSpan几小时而不是几天

以下代码

Console.WriteLine("{0:%h} hours {0:%m} minutes", 
                   new TimeSpan(TimeSpan.TicksPerDay));
Run Code Online (Sandbox Code Playgroud)

产生这个输出:

0小时0分钟

我想要的是这个输出:

24小时0分钟

我在这个格式字符串中缺少什么?

PS我知道我可以手动将TimeSpan分成几天和几小时,并将两者相乘,但宁愿使用自定义格式字符串,因为这些时间跨度显示在silverlight数据网格中,人们期待看到horus,而不是几天.

c# silverlight formatting timespan

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

TimeSpan从负值到正值的差异

TimeSpan Earlybeforetime = new TimeSpan();
Earlybeforetime = earlybefore.Subtract(Convert.ToDateTime(outtime);
Run Code Online (Sandbox Code Playgroud)

有时它会返回负值.如何将值转换为始终为正?

.net c# timespan

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

WPF 的时间跨度控制

WPF 有一个好的时间跨度控制吗?我正在寻找一个看起来像来自 WPF Toolkit 扩展的 Timepicker(小巧紧凑)。我从 codeproject 中看到的示例对于我的 UI 来说太大了。如果没有,我愿意自己创建一个并希望得到建议。谢谢

wpf timespan

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

SplashScreen.Close(Timespan.FromMilliseconds(int)):是否在Timespan完成时调度了一个事件?

C#WPF应用程序

我通过使用在启动时显示SplashScreen最少的时间

Thread.Sleep(int); //int = milliseconds to display splash screen
Run Code Online (Sandbox Code Playgroud)

达到该睡眠时间后,代码将恢复,并且SplashScreen将逐渐淡出以关闭

SplashScreen.Close(Timespan.FromMilliseconds(int)); //int = milliseconds fade-out
Run Code Online (Sandbox Code Playgroud)

我想在此时暂停等待SplashScreen变为100%透明并完全关闭,然后继续执行其他任务,IE写入控制台或显示MainWindow.

(TimeSpan.FromMilliseconds(int))完成时是否触发了事件?还有其他建议吗?

namespace StartupSplash
{
    public class SplashScreenStartup
    {
        //IMPORTANT:set image property to Resource and NOT Splash Screen
        private SplashScreen Splash = new SplashScreen("Resources/SplashScreen.png");

        public void SplashScreenStartUp()
        {
            Splash.Show(false, true);
            Thread.Sleep(3000); // Pause code, display splash screen 3 seconds
            Splash.Close(TimeSpan.FromMilliseconds(3000)); // 3 second splash fade-out
            // I want to wait until splash screen fadeOut has completed before
            // this next console output …
Run Code Online (Sandbox Code Playgroud)

c# wpf timespan splash-screen event-listener

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

为什么timepan totalmilliseconds在整数和小数部分中具有相同的数字?

当计算两个DateTime对象之间的毫秒差异时,我似乎总是得到一个返回的数字,其中数字的小数部分与数字的整数分量相同.例如:1235.1235

为什么会这样?难道我做错了什么?这是语言的怪癖还是DateTime粒度的限制或其他什么?

这可以使用以下代码演示:

        DateTime then = DateTime.Now;
        Thread.Sleep(1234);
        DateTime now = DateTime.Now;
        TimeSpan taken = now - then;
        string result = taken.TotalMilliseconds.ToString(CultureInfo.InvariantCulture);
        //result = "1235.1235"
Run Code Online (Sandbox Code Playgroud)

由CodesInChaos评论:

DateTime`不准确到这个精度级别:参见C#DateTime.Now precision

但是 - 这并不能解释这种行为.

c# datetime timespan

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

将秒转换为天,hh:mm:ss C#

我需要以格式转换秒数3d, 02:05:45.使用以下功能,我可以将其转换为3.02:05:45.我不知道如何将其转换为我想要的格式.请帮忙.

private string ConvertSecondsToDate(string seconds)
{
    TimeSpan t = TimeSpan.FromSeconds(Convert.ToDouble(seconds));

    if (t.Days > 0)
        return t.ToString(@"d\.hh\:mm\:ss");
    return t.ToString(@"hh\:mm\:ss");

}
Run Code Online (Sandbox Code Playgroud)

如果我尝试做这样的事情,t.ToString(@"%d , hh\:mm\:ss")我会收到错误,

输入字符串的格式不正确.

c# timespan

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

JSON 中 Duration 的好格式是什么?

我意识到 JSON 没有真正的日期格式,考虑到 JavaScript 使用的是 ISO 8601,因此使用 ISO 8601 是一个不错的选择。持续时间呢?JavaScript 没有内置格式。

  1. 我遇到了ISO 8601 持续时间,例如P3Y6M4DT12H30M5S我在野外没有看到太多使用。它看起来也非常冗长且难以阅读。据我所知,如果您需要,它也不支持毫秒。
  2. 我正在使用 C#,其TimeSpan类型输出1.02:03:04.0050000为 1 天、2 小时、3 分钟、4 秒和 5 毫秒。
  3. 我可以使用秒数或毫秒数作为整数。这完全是机器可读的,如果您使用秒或毫秒而不标记值,这并不明显。

我几乎从未见过野外的第一种格式。第二个对我来说似乎更直观,但我担心它在 .NET 之外并不为人所知。第三种格式可能是最跨平台友好的,但完全不是人类可读的。

.net time timespan duration iso8601

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

TimeSpan 的系统文本 JsonSerializer 反序列化

在研究如何TimeSpan使用 Newtonsoft 的 JSON.net反序列化时,我遇到了当前项目中未使用 Json.net 的代码。根据我正在运行的单元测试,它使用System.Text.Json.JsonSerializer并且似乎不会在反序列化TimeSpan属性的操作上失败。

太好了,我想,.Net Core 3.1已经超越了反序列化 a的历史问题,TimeSpan一切都很好。因此,在最新版本的 Linqpad 6(使用 .NET Core)中启动了一个测试用例来验证,但令我懊恼的是它失败了。


所以问题是,是否可以TimeSpan使用任一库(如果可以的话)进行序列化/反序列化……或者我下面的测试用例在某些方面是否存在缺陷?


代码

public class Project { public TimeSpan AverageScanTime { get; set; } }
Run Code Online (Sandbox Code Playgroud)

Linqpad C# 代码

var newP = new Project() { AverageScanTime = TimeSpan.FromHours(1) };

newP.Dump("New one");

var json = System.Text.Json.JsonSerializer.Serialize(newP);

json.Dump("JSON serialized");

System.Text.Json.JsonSerializer.Deserialize<Project>(json)
                               .Dump("JSON Deserialize");
Run Code Online (Sandbox Code Playgroud)

反序列化失败

在此处输入图片说明

c# json timespan .net-core system.text.json

9
推荐指数
2
解决办法
4844
查看次数