Visual Studio 2022 httpfile localDatetime 正在发送 UTC 时间

问题描述 投票:0回答:1

我正在构建一个 Web API,它应该能够接收包含用户消息的 POST 请求。我有一个 .http 文件,应该发送请求来测试此接口。它应该发送的字段之一是当前日期/时间,以当地时间表示,格式为

yyyy-MM-dd HH:mm:ss

下面是我的 .http 文件:

@HostAddress = http://localhost:527

@NowUtc = {{$datetime "yyyy-MM-dd HH:mm:ss"}}
@NowLocal = {{$localDatetime "yyyy-MM-dd HH:mm:ss"}} 

POST {{HostAddress}}/api/Message
Content-Type: application/json

[
{
  "username": "myusername",
  "message": {
    "id": 12345678,
    "date": "{{NowLocal}}",
    "content": "Some message text"
  }
}
]

无论我发送

{{NowLocal}}
还是
{{NowUtc}}
作为
date
字段,POST 请求中传递的值始终是 UTC。我的系统的本地时间是 CEST,所以我希望时间是 UTC+2,但正如所说的那样,事实并非如此。我还尝试将日期时间格式化为 iso8601 但这没有什么区别:
NowUtc
NowLocal
包含相同的值。省略消息正文中日期字段周围的引号会导致验证错误,并且根本不会发送 POST 请求。

如果我设置

@NowLocal = {{$localDatetime "yyyy-MM-dd HH:mm:ss" +2 h}}
我会得到正确的当地时间,但当然这不是必需的。它只是证明localDatetime变量包含UTC。

我错过了一些明显的东西吗?

visual-studio datetime asp.net-core-webapi webapi .http-files
1个回答
0
投票

您使用什么数据类型来表示日期?

如果您使用 DateTime,应使用本地时间发布,如果使用 DateTimeOffset 将是 UTC。这就是我发现的。 使用日期时间

enter image description here

使用日期时间偏移

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.