【发布时间】:2020-08-08 17:46:05
【问题描述】:
我有一个 2018 年 10 月 20 日的 Unix 时间戳列表,看起来像这样
Unix时间戳时间转换
- 1539993951 - 10/20/2018 @ 12:05am (UTC)
- 1539997544 - 10/20/2018 @ 1:05am (UTC)
- 1540001143 - 10/20/2018 @ 2:05am (UTC)
- 1540004743 - 10/20/2018 @ 3:05am (UTC)
- 1540008353 - 10/20/2018 @ 4:05am (UTC)
- 1540011941 - 10/20/2018 @ 5:05am (UTC)
- 1540015547 - 10/20/2018 @ 6:05am (UTC)
- 1540019148 - 10/20/2018 @ 7:05am (UTC)
- 1540022753 - 10/20/2018 @ 8:05am (UTC)
- 1540026346 - 10/20/2018 @ 9:05am (UTC)
- 1540029951 - 10/20/2018 @ 10:05am (UTC)
- 1540033550 - 10/20/2018 @ 11:05am (UTC)
- 1540037150 - 2018 年 10 月 20 日下午 12:05(UTC)
- 1540040746 - 2018 年 10 月 20 日 @ 下午 1:05(UTC)
- 1540044347 - 2018 年 10 月 20 日下午 2:05(UTC)
- 1540047951 - 2018 年 10 月 20 日 @ 下午 3:05(UTC)
- 1540051549 - 2018 年 10 月 20 日 @ 下午 4:05(UTC)
- 1540055144 - 2018 年 10 月 20 日下午 5:05(UTC)
- 1540058750 - 2018 年 10 月 20 日下午 6:05(UTC)
- 1540062349 - 2018 年 10 月 20 日下午 7:05(UTC)
- 1540065938 - 2018 年 10 月 20 日 @ 晚上 8:05(UTC)
- 1540069549 - 2018 年 10 月 20 日 @ 晚上 9:05(UTC)
- 1540073134 - 2018 年 10 月 20 日 @ 晚上 10:05(UTC)
- 1540076744 - 2018 年 10 月 20 日 @ 晚上 11:05(UTC)
我有一种方法可以提取当前时间的 Unix 时间戳
public static Int32 unixTimeStampNow()
{
Int32 unixTimestamp = (Int32)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
Console.WriteLine("The Unix Timestamp is ", unixTimestamp);
return unixTimestamp;
}
当前时间戳: 1596893776 2020 年 8 月 8 日下午 1:45(UTC)
如果我想在上面的列表中找到与当前时间戳 (1:45pm) 最接近的时间戳,即 (1540044347 - 10/20/2018 @ 2:05pm (UTC)) .我该怎么办?提前感谢任何帮助!
【问题讨论】:
-
你为什么要这样做而不是使用 DateTime?您不会从中获得任何收益,但您确实会丢失本地时间指示器 -
DateTime.Now返回本地时间。您也会丢失数据 - 秒分数 -
如果您想找到指向某个任意 DateTime 的“关闭”点,您可以订购所有 DateTime 实例并找到大于它的“Min”值,它之前的值并检查哪个最接近.您可以使用 LINQ 查询来做到这一点。或者您可以从所有存储的值中减去目标 DateTime 并选择最小的绝对差。你可以只用时间戳做同样的事情。但这会产生额外的转换成本。
标签: c# unix-timestamp