簡體   English   中英

對於 CosmosDB,如何將日期值轉換為 YYYY-MM-DDThh:mm:ss.sssZ 格式的字符串?

[英]How can I get the value of a date into a string in the format YYYY-MM-DDThh:mm:ss.sssZ for CosmosDB?

我正在使用的 CosmosDB 數據庫建議我將 DateTime 存儲在一個字符串中。

在 Azure Cosmos DB 中使用日期

所以我正在嘗試這樣做:

string DateAndTime = DateTime.Now.ToString()

但它沒有給我正確的格式。 有沒有辦法做到這一點並將其轉換為這種確切的格式:YYYY-MM-DDThh:mm:ss.sssZ?

如果您尚未使用DocumentClient ,則可以使用它與您的集合進行交互。

使用DocumentClient意味着您可以根據需要定義文檔類型,而無需手動將字段轉換為字符串。 例如,您可以使用以下類型從集合中創建/查詢文檔:

public class CosmosDocument
{
    [JsonProperty("id")]
    public string Id { get; set; }

    public DateTime TimeStamp { get; set; }

}

DocumentClient然后將為您序列化/反序列化/模型綁定數據,包括DateTime值。

如果您需要對默認設置進行任何更改,則可以配置序列化。

編輯

如評論中所述, CosmosClient是提供上述相同功能的較新版本。

根據自定義日期和時間格式字符串,您應該使用類似的東西

string DateAndTime = DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss.sssz");

它將為您提供以下字符串2020-04-04T11:19:06.06+3

yyyy表示四位數年份( YYYY格式不存在), dd表示月份中的日期(從 01 到 31)。 z用於您的本地時區和 UTC 之間的偏移量

字符串中的大寫Z文字表示日期時間為 UTC 格式(根據 ISO 8601 標准)。 要在結果字符串中逐字獲取它,您可以使用DateTime.UtcNow而不是DateTime.Now ,最后帶有Z文字或K說明符

string DateAndTime = DateTime.UtcNow.ToString("yyyy-MM-ddThh:mm:ss.sssK");

它為您提供2020-04-04T08:49:22.22Z (UTC 格式的當前日期時間)。 K說明符將為 UTC 日期添加Z文字,為本地日期添加偏移量(以zzz格式)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM