C# 在c中将日期时间(DD-MM-yyy-HH-MM-SS)转换为类似时间跨度(DD-MM-yyy-HH-MM-SS)的时间跨度#
是否可以将DateTime值精确克隆为Timespan数据类型。我通过减去最小值将datetime转换为timespan。但是,它如何以DD-MM-yyy-HH-MM-SS格式显示C# 在c中将日期时间(DD-MM-yyy-HH-MM-SS)转换为类似时间跨度(DD-MM-yyy-HH-MM-SS)的时间跨度#,c#,datetime,string-formatting,timespan,C#,Datetime,String Formatting,Timespan,是否可以将DateTime值精确克隆为Timespan数据类型。我通过减去最小值将datetime转换为timespan。但是,它如何以DD-MM-yyy-HH-MM-SS格式显示 TimeSpan timeSpan = (DateTime)startTimeValue - DateTime.MinValue; 有点晚了但是因为你没有得到任何关注所以 是否可以将DateTime值精确克隆到Timespan数据 类型 好吧,因为您的示例从DateTime.MinValue开始就可以正常工作,因此
TimeSpan timeSpan = (DateTime)startTimeValue - DateTime.MinValue;
有点晚了但是因为你没有得到任何关注所以 是否可以将DateTime值精确克隆到Timespan数据 类型 好吧,因为您的示例从
DateTime.MinValue
开始就可以正常工作,因此0
作为标记
。相当于,
TimeSpan timeSpan = TimeSpan.FromTicks(((DateTime)startTimeValue)Ticks);
它如何以DD-MM-yyy-HH-MM-SS格式显示
首先,没有DD
、YYYY
和SS
作为一个整体。它们表示为dd
、yyy
和ss
TimeSpan
与DateTime
大不相同。它是一个时间间隔,但DateTime
是一个时间点。如您所见,时间间隔不能包含任何月份和年份部分。在哪个日历中
?并非所有的日历都有12个月。具体在哪个月?有多少个月有29天在GregoriaCalendar
中?或中国日历
?这要看情况,对吗?月和年的概念在时间跨度上是模糊的
但是,您仍然可以使用如下方法将TimeSpan
格式化为日、时、分和秒
timeSpan.ToString(@"d\.hh\:mm\:ss")
作为更好的选择,您可以使用Nodatime,它具有类和枚举,您可以像这样计算它们
using System;
using NodaTime;
public class Program
{
public static void Main()
{
LocalDate start = new LocalDate(2010, 11, 20);
LocalDate end = new LocalDate(2015, 7, 13);
Period period = Period.Between(start, end,
PeriodUnits.Months | PeriodUnits.Years);
Console.WriteLine("{0} - {1}", period.Months, period.Years); // 7 - 4
}
}
为什么你会在意从公元1月1日午夜起经过的时间?您拥有的是日期和时间,而不是时间跨度,那么为什么不使用DateTime类型呢?特别是当您要将其转换为字符串时。可能需要将startTimeValue本身转换为“DD-MM-YYYY-HH-MM-SS”格式,并为此使用startTimeValue.toString(“DD-MM-YYYY-HH-MM-SS”)。如果没有,请解释您的要求,使其更清楚。我必须在db中插入datetime值,但db中的数据类型是作为Timespan提供的。我现在无法修改db类型,所以试图通过代码手动操作。它是什么数据库?您确定它需要的是.NET时间跨度,而不是自一个纪元以来的滴答数或秒数吗?