Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TimeSpan删除秒数_C#_Javascript_.net_Datetime_Timespan - Fatal编程技术网

C# TimeSpan删除秒数

C# TimeSpan删除秒数,c#,javascript,.net,datetime,timespan,C#,Javascript,.net,Datetime,Timespan,如何在C#中截断timespan对象的秒位?i、 e.15:37 我以HH:mm的格式将timespan对象输出到JavaScript,并希望服务器端提供正确的格式,而不是客户端浏览器,这可以在不向JavaScript提供C#string对象的情况下完成吗?我相信这就是您要寻找的 string.Format("{0:H:mm}",myTime) 您可以使用以下格式字符串: public string GetTimeSpanAsString(TimeSpan input) { retur

如何在C#中截断timespan对象的秒位?i、 e.15:37


我以HH:mm的格式将timespan对象输出到JavaScript,并希望服务器端提供正确的格式,而不是客户端浏览器,这可以在不向JavaScript提供C#string对象的情况下完成吗?

我相信这就是您要寻找的

string.Format("{0:H:mm}",myTime)

您可以使用以下格式字符串:

public string GetTimeSpanAsString(TimeSpan input)
{
    return input.ToString(@"hh\:mm");
}

您可以截断作为时间跨度核心的“ticks”值:

TimeSpan t1 = TimeSpan.FromHours(1.551);
Console.WriteLine(t1);
TimeSpan t2 = new TimeSpan(t1.Ticks - (t1.Ticks % 600000000));
Console.WriteLine(t2);
给出:

01:33:03.6000000
01:33:00

也许是这样的。它使用整数除法的截断,然后是除数的乘法,将截断为分钟

return TimeSpan.FromTicks(input.Ticks/TicksPerMinute*TicksPerMinute);

可能不是最优的,但易于阅读:

TimeSpan.FromMinutes((long)duration.TotalMinutes);

如果您将时间跨度格式化为HH:mm,那么秒不是已经被截断了吗?您真的想在时间跨度中将秒设置为0,还是在转换为字符串时忽略它们?请查看以下答案@CodeInChaos@fredrik mork@Nick Yes忽略秒而不转换为字符串,我的JSON序列化程序需要以TimeSpan格式获取hh:mm,而无需转换为String@Maya:a
TimeSpan
是一个值,而不是值的字符串表示形式。如果您需要特定格式的字符串,则需要将其转换为字符串。如果
myTime
TimeSpan
(System.FormatException:输入字符串的格式不正确),则该代码会崩溃。@Fredrik,抱歉,
H:mm
应该是您要寻找的转换器。我不明白您的意思<代码>H:mm不是有效的。对于
DateTime
yes,但对于
TimeSpan
@Fredrik,我的印象是它将解析字符串一段时间并将其转换为指定格式。很抱歉给你提供了错误的信息。谢谢,但我需要在我的case@Maya我认为您必须要么修改JSON序列化程序,要么在客户端执行此操作。或者只修改发送到序列化程序的值,然后改为发送字符串。TimeSpan没有格式。这只是一个整数倍的滴答声。我认为您想要的是更改它序列化为json的方式,而不是TimeSpan本身。@Maya-TimeSpan没有任何特定的字符串表示,直到有人将其转换为字符串-几乎所有.NET类型都是这样工作的。虽然您可以创建一个带有格式的,但这不是标准类型的工作方式。答案很好,但我会使用TimeSpan.tickserMinute而不是600000000。