簡體   English   中英

帶有時區的時間戳格式 C#

[英]Timestamp format with Timezone C#

對於以下代碼,這將是 output (2020-06-05T23:02:24.554+05:30)。 我想要(+05:30)中沒有“:”的時區,並且期望像(+0530)一樣。 如何使用日期時間格式來實現這一點? 我可以使用字符串操作刪除冒號,但日期時間格式本身應該有一些選項,如果有人建議會非常好。

string date = String.Format("{0:s}.{0:fff}{0:zzz}", DateTime.Now);

沒有這樣做的標准方法,但是您可以編寫一個自定義方法,例如無需測試就需要時間並按照您的要求返回 utc:

public static string GetUtc(DateTime dateTime)
{
    return $"{dateTime:zzz}".Replace(":", "");
}

並稱它為

GetUtc(DateTime.Now);

這將為您返回 +0530。

順便說一句,我也參考從 DateTime 獲取時區以供閱讀。

您可以使用 DateTimeOffset 而不是 DateTime 來獲得您所追求的。

        var now = DateTimeOffset.Now;

        string date = string.Format("{0}{1}{2}", now.ToString("s.fff"), now.Offset.Ticks < 0 ? "-" : "+", now.Offset.ToString("hhmm"));

暫無
暫無

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

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