C# 从float转换为TimeSpan

C# 从float转换为TimeSpan,c#,.net,datetime,C#,.net,Datetime,我需要将浮点数转换为日期时间。例如: float x=70; DateTime应返回1分10秒。(1:30)您可以使用TimeSpan表示时间浮动。请记住TimeSpan不接受float参数,因此需要转换为double类型 float x = 70; TimeSpan span = TimeSpan.FromSeconds((double)(new decimal(x))); 然后使用参考DateTime将TimeSpan转换为DateTime。在本例中,我们使用的是epoch DateTi

我需要将浮点数转换为日期时间。例如:

float x=70;

DateTime应返回1分10秒。(1:30)

您可以使用
TimeSpan
表示时间浮动。请记住
TimeSpan
不接受
float
参数,因此需要转换为
double
类型

float x = 70;
TimeSpan span = TimeSpan.FromSeconds((double)(new decimal(x)));
然后使用参考
DateTime
TimeSpan
转换为
DateTime
。在本例中,我们使用的是
epoch

DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime date = epoch + span;
日期将表示从
历元
开始的秒数(您的
浮点

DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime date = epoch + span;
注意
epoch
()可以是任何日期(根据需要更改)


演示

CS0426@jeanfrgMy bad中不存在类型名“FromSeconds”,您需要将float转换为double,因为FromSeconds不接受float作为参数@peterCS0176成员“TimeSpan.FromSeconds(double)”不能通过实例引用访问;用一个类型限定它name@peter也许您尝试了
TimeSpan TimeSpan=TimeSpan.FromSeconds…
。那是行不通的。无论如何,不要对局部变量使用大写:)@peter您得到的错误意味着您正在TimeSpan实例上而不是类型上调用.FromSeconds。因此,在您的代码或帖子中仔细检查您使用的代码行:)您想要日期时间,还是时间跨度?值为1分10秒的DateTime表示很久以前的某个时刻。@oerkelens我认为TimeSpan也可以做到这一点,因为我需要在以后将其添加到DateTime中,如果您想将其添加到DateTime中,那么您确实应该选择TimeSpan而不是DateTime。将DateTimes添加到DateTimes是没有意义的,它意味着将星期三添加到星期四。@oerkelens一些代码会很有用:)好吧,Jeanfg的答案(从秒构建时间跨度)就是您所需要的。