C# UTC和没有时间的日期

C# UTC和没有时间的日期,c#,.net,utc,C#,.net,Utc,我有不同时区的用户,因此我以UTC格式存储日期 因为日期是一个付款时间表,所以我不想要时间。我解决这个问题的方法是: var utcDate=DateTime.Parse(newPaymentPlanRequest.StartDate.ToShortDateString()) 它将日期存储在数据库中为2021-02-10 00:00:00.0000000 一切似乎都很好。但是,当我使用TimeZoneInfo将日期转换为本地日期时,它会将时间设置为我要查找的当天的前一天 我不知道如何处理这件事。

我有不同时区的用户,因此我以UTC格式存储日期

因为日期是一个付款时间表,所以我不想要时间。我解决这个问题的方法是:

var utcDate=DateTime.Parse(newPaymentPlanRequest.StartDate.ToShortDateString())

它将日期存储在数据库中为2021-02-10 00:00:00.0000000

一切似乎都很好。但是,当我使用TimeZoneInfo将日期转换为本地日期时,它会将时间设置为我要查找的当天的前一天

我不知道如何处理这件事。如有任何建议,将不胜感激

提前谢谢大家,,
Marty

既然您将所有日期都存储在UTC中,为什么不将您的计费流程运行日期也转换为UTC?然后进行比较。

我继续,只使用了当地时区的日期,并将每小时运行一个作业来处理事务


谢谢您的帮助。

但是,当我使用TimeZoneInfo将日期转换为本地日期时,
您考虑过不这样做吗?如果您不想使用
日期时间的“时间”部分,那么您为什么关心时区?我的建议是始终使用它来处理时区和它们之间的转换。永远不要随意增加或减少任何时间。如果您需要知道给定时区中的日期和时间UTC时间戳是什么,NodeTime将通过有效使用仅允许语义正确操作的域模型来防止错误计算。
DateTime
始终具有
time
组件。这就是
00:00:00.0000000
部分的内容。我只是想给你一个缩短代码的方法(
Date
属性返回的日期带有一个调零的超时部分)。我不理解所有的解析。要在午夜从
DateTime
获取
DateTime
,请使用。