it-swarm-ja.tech

日付形式yyyy-MM-ddTHH:mm:ssZ

これは非常に単純なはずですが、取得できませんでした:(。この形式では、Zはタイムゾーンです。
Tは長い時間パターンです
この形式で日付を取得するにはどうすればいいですか?

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));

c#で

92
Saar

UTCを使用する

ISO 8601MSDN日時形式

Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");

2009-11-13T10:39:35Z

Zがあるのは、

時刻がUTCの場合、スペースなしで時刻の直後に「Z」を追加します。 「Z」は、ゼロUTCオフセットのゾーン指定子です。したがって、「09:30 UTC」は「09:30Z」または「0930Z」として表されます。 「14:45:15 UTC」は「14:45:15Z」または「144515Z」になります。

オフセットを含める場合

int hours = TimeZoneInfo.Local.BaseUtcOffset.Hours;
string offset = string.Format("{0}{1}",((hours >0)? "+" :""),hours.ToString("00"));
string isoformat = DateTime.Now.ToString("s") + offset;
Console.WriteLine(isoformat);

次の2つの点に注意してください。時間の後に+または-が必要ですが、明らかに+は正数には表示されません。ウィキペディアによると、オフセットは+ hh形式または+ hh:mmになります。私は数時間にとどまっています。

私の知る限り、RFC1123(HTTP日付、「u」フォーマッタ)はタイムゾーンオフセットを提供するものではありません。すべての時間はGMT/UTCであることが意図されています。

124
Chris S
Console.WriteLine(DateTime.UtcNow.ToString("o"));  
Console.WriteLine(DateTime.Now.ToString("o"));

出力:

2012-07-09T19:22:09.1440844Z  
2012-07-09T12:22:09.1440844-07:00
58
Rami A.

「o」形式は、DateTimeとDateTimeOffsetで異なります:(

DateTime.UtcNow.ToString("o") -> "2016-03-09T03:30:25.1263499Z"

DateTimeOffset.UtcNow.ToString("o") -> "2016-03-09T03:30:46.7775027+00:00"

私の最後の答えは

DateTimeOffset.UtcDateTime.ToString("o")   //for DateTimeOffset type
DateTime.UtcNow.ToString("o")              //for DateTime type
9
LucasM

here で「u」および「s」パターンを見てください。 1つ目は「T」セパレータなしで、2つ目はタイムゾーンサフィックスなしです。

6
archimed7592

このための単一行コード。

var temp   =  DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");
5

C#6+では、文字列補間を使用して、これをより簡潔にすることができます。

$"{DateTime.UtcNow:s}Z"
4
Todd Menier

1つのオプションは、DateTimeをToUniversalTime()に変換してから"o"形式を使用して文字列に変換することです。例えば、

var dt = DateTime.Now.ToUniversalTime();
Console.WriteLine(dt.ToString("o"));

出力されます:

2016-01-31T20:16:01.9092348Z
4
Khalil

Salesforce REST AP​​Iクエリの日時形式で正常に動作します

DateTime now = DateTime.UtcNow;
string startDate = now.AddDays(-5).ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");   
string endDate = now.ToString("yyyy-MM-ddTHH\\:mm\\:ssZ");  
//REST service Query 
string salesforceUrl= https://csxx.salesforce.com//services/data/v33.0/sobjects/Account/updated/?start=" + startDate + "&end=" + endDate;

// https://csxx.salesforce.com/services/data/v33.0/sobjects/Account/updated/?start=2015-03-10T15:15:57Z&end=2015-03-15T15:15:57Z

問題なくSalesforceから結果を返します。

2
HariKrishna