C# 将时间转换为滴答声
我有一个函数,可以将刻度转换为时间格式C# 将时间转换为滴答声,c#,asp.net,C#,Asp.net,我有一个函数,可以将刻度转换为时间格式 long ticks = DateTime.Now.Ticks; long tt = GetTimeTSecondsFrom(ticks); long GetTimeTSecondsFrom(long ticks) { DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); return (long) (new
long ticks = DateTime.Now.Ticks;
long tt = GetTimeTSecondsFrom(ticks);
long GetTimeTSecondsFrom(long ticks)
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return (long) (new DateTime(ticks) - epoch).TotalSeconds;
}
现在我不知道如何用数学公式而不是函数将其转换回滴答声
有什么建议吗
谢谢
让我举一个一般的例子来解释。
DateTime.Now.Ticks给我一个值633921719670980000,以tics为单位
然后我用上面的函数在时间上转换它,得到tt=1256575167
现在我想把它转换回633921719670980000。为此,我需要文档中的公式:
一个滴答声代表一百纳秒或一千万分之一秒。一毫秒内有10000个滴答声
因此,将秒转换为刻度的函数如下所示:
long GetTicksFromSeconds(long seconds)
{
return seconds * 10000000;
}
从文件中:
一个滴答声代表一百纳秒或一千万分之一秒。一毫秒内有10000个滴答声
因此,将秒转换为刻度的函数如下所示:
long GetTicksFromSeconds(long seconds)
{
return seconds * 10000000;
}
给出的答案是关于将滴答声转换为时间的评论
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return TimeSpan.FromSeconds(time_t_value).Ticks + epoch.Ticks;
给出的答案是关于将滴答声转换为时间的评论
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return TimeSpan.FromSeconds(time_t_value).Ticks + epoch.Ticks;
日期
1970-01-01 00:00:00 Z
正好是62135596800秒(62135596800000000个刻度),因此要将DateTime
刻度计数转换为time\t
值,您可以将其缩放(除以10000000)得到秒,然后减去该偏移量
相反,将偏移秒数加到
时间\u t
值中,然后缩放它(乘以10000000)以获得刻度。日期1970-01-01 00:00:00 Z
正好是62135596800秒(62135596800000000刻度),因此,要将DateTime
记号计数转换为time\t
值,您可以将其缩放(除以10000000)以获得秒数,然后减去该偏移量
相反,将偏移秒数加到
时间\u t
值中,然后缩放它(乘以10000000)以获得刻度。这不会给我想要的值。。。请看一下我编辑的部分,以获得清晰的图片。。谢谢这不会给我想要的价值。。。请看一下我编辑的部分,以获得清晰的图片。。thanksit给出了一个错误“System.TimeSpan不包含“TotalTicks”的定义,也没有扩展方法“TotalTicks…”。我只是从原始注释中复制和粘贴了一些内容。它是.Ticks,不是.TotalTicks,使用Intellisense很容易发现。我已经更新了答案。所以没有公式可以做到这一点。。。。我问这个问题是因为我需要在数据库查询中使用它。。。。我已经存储了时间,然后将其转换为刻度,并以特定格式显示一个日期,我通过操纵刻度来获得该日期……您不应该在数据库中需要公式。只需确保在将其发送到数据库之前始终将其从时间刻度转换为时间刻度,并在从数据库加载后将表单时间刻度转换为时间刻度。这会导致错误“System”。TimeSpan不包含“TotalTicks”的定义,也不包含扩展方法“TotalTicks…”。我只是从原始注释复制并粘贴了它。它是.Ticks,不是.TotalTicks,使用Intellisense很容易发现。我已经更新了答案。所以没有公式可以做到这一点。。。。我问这个问题是因为我需要在数据库查询中使用它。。。。我已经存储了时间,然后将其转换为刻度,并以特定格式显示一个日期,我通过操纵刻度来获得该日期……您不应该在数据库中需要公式。只需确保在将其发送到数据库之前始终将其从时间刻度转换为时间刻度,并在从数据库加载后将表单时间刻度转换为时间刻度即可。