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