gpt4 book ai didi

c# - 从 JavaScript 到 C# 解析日期和时间

转载 作者:行者123 更新时间:2023-11-29 18:28:18 27 4
gpt4 key购买 nike

我有一些 JavaScript 代码正试图传递给我的网络服务。我的 JavaScript 代码应该以 UTC 格式发送日期。在本地,我生成代码的时间是下午 12:30:43。当我执行我的 JavaScript 代码时,生成了以下日期/时间:

2012-06-03T20:30:43.000Z

该日期/时间是从此代码生成的:

var now = new Date();
var utcDate = new Date(
now.getUTCFullYear(),
now.getUTCMonth(),
now.getUTCDate(),
now.getUTCHours(),
now.getUTCMinutes(),
now.getUTCSeconds()
);

当我将日期/时间从 JavaScript 传回我的 Web 服务时,它被序列化如下所示:

20120603163043

在我看来这是正确的。然后我需要获取该字符串并将其转换为 C# 中的日期/时间。为了尝试这样做,我使用了以下 C# 代码:

DateTime _value = DateTime.MinValue;
DateTime.TryParseExact(value, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out _value)

发生这种情况时,我会得到以下日期/时间。2012 年 6 月 3 日下午 12:30:43

我做错了什么?我期望日期/时间是 6/3/2012 4:30:43 PM

最佳答案

你得到的结果是正确的,但请检查Kind DateTime 的属性。您会注意到它没有设置为 UTC,而是设置为 Local

您可以使用 DateTimeStyles.AdjustToUniversal 生成 DateTime 并将 Kind 设置为 UTC

DateTime dateTime;
DateTime.TryParseExact(
value,
"yyyyMMddHHmmss",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal,
out dateTime);

查看它在 ideone 上的工作.

关于c# - 从 JavaScript 到 C# 解析日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com