如何将当前日期时间转换为秒数

4
我有一个输入值为15:20:30。
我想将其转换为秒。

自xx日期以来的秒数?从今天00:00开始的秒数?秒组件? - UpTheCreek
请澄清问题,DateTime.now不是15:20:30。它至少具有日期组件。另外,您想要所有小时、分钟和秒钟的秒数吗? - Vinko Vrsalovic
1
你用什么编程语言?技术呢?你是在写C#、VB、Python、Lisp还是Fortran? - Stefan Steinegger
1
你不能将时间转换为秒,你总是需要一个时间跨度(或参考点)。你想要将时间转换为从午夜以来的秒数吗?还是自纪元日期以来的秒数? - Dirk Vollmar
这是代表下午3点20分还是15小时20分钟30秒?如果是后者,那么它不是一个DateTime。 - Lloyd Powell
@monkey_boy:你应该尽量阐明你的问题。转换的结果应该是什么? - M4N
3个回答

24

由于您没有恰当地指定问题,我将其解释为代表15小时20分钟30秒,而不是DateTime.Now。 (显然,这与“自午夜以来多少秒”相同)

  TimeSpan MySpan = new TimeSpan(15, 20, 30);
  MySpan.TotalSeconds;

如果你只想获取当前DateTime.Now的秒数(这不是TotalSeconds,只是当前分钟的秒数),那么只需使用:

  DateTime.Now.Second

有没有 DataTime.LifeStart 这样的方法可以获取 45 亿年(或者左右)前生命开始的时间?由于问题过于模糊。 - kjfletch
我创建了自己的DateTime对象并添加了一个名为JesusStart的属性,该属性返回new DateTime(0000, 12, 25); - Lloyd Powell
8
我有相同的属性,但它只会引发AgentDoesNotExistError错误。 - kjfletch

10
var dt = DateTime.Now;
var ticks = dt.Ticks;
var seconds = ticks/TimeSpan.TicksPerSecond;

每个时钟周期为100纳秒。


1
那是自公元1年1月1日午夜12:00:00以来的秒数,你确定他想要这个吗? - UpTheCreek
你为什么认为他要求自DateTime.MinValue以来的秒数? - Stefan Steinegger
1
我认为提问者不知道他想要什么 :-) 因此,答案是故意不完整的---它全部关于Ticks属性和将其转换为秒。 - Richard

4

如果您想计算从15小时20分钟30秒开始的总秒数,可以按照以下方式实现:

Int32 GetSeconds(Int32 hours, Int32 minutes, Int32 seconds) {
  return ((hours*60) + minutes)*60 + seconds;
}

3
您可以在任何语言中使用这个。我知道它非常简单,但我的假设是问题也很简单。 - Martin Liversage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接