1

yyyymmddhhmmssエンティティから xml を作成するために以下のクエリを作成しました。フィールドの形式で .NET の日時を取得する必要があるためSLOTTINGTIME、希望の形式で日時を取得する新しいメソッドを作成することを考えました。

var slottingmessagexml = new XDocument(new XElement("Message",
    new XAttribute("ID","SLT"),
    new XElement("Record",
        new XAttribute("STORENO",slottingmessage.StoreID),
        new XAttribute("PICKLOCATION",slottingmessage.PickLocation),
        new XAttribute("TPNB",slottingmessage.ProductID),
        new XAttribute("SLOTTINGTIME",GetDateTimeInNewFormat(slottingmessage.SlottingDateTime)),
        new XAttribute("SLOTTTINGACTION",slottingmessage.SlottingAction))
    )
);
4

3 に答える 3

15

使用できます

string strDate = DateTime.Now.ToString("yyyyMMddhhmmss");

書式文字列のHH代わりに大文字を使用する 24 時間形式が必要な場合。hh

小文字は分を表し、大文字は月を表すため、最初MM は大文字にする必要があります。mm

特定のケースでは、新しいメソッドを作成する代わりに、次のことができます。

new XAttribute("SLOTTINGTIME",slottingmessage.SlottingDateTime.ToString("yyyyMMddhhmmss")),

もう 1 つ追加する必要があります。文字列の小文字hh部分のため、出力には 12 時間形式の Hour が含まれます。AM/PM がないと正確な時刻を示すことができないため、それが必要かどうかはよくわかりません。その目的のためHHに、時間を 24 時間形式で表示する時間を使用します。したがって、コードは次のようになります。

new XAttribute("SLOTTINGTIME",slottingmessage.SlottingDateTime.ToString("yyyyMMddHHmmss")),
                                                                               //^^ for 24 hours format
于 2013-04-18T10:25:50.023 に答える
5

これはどう?

public string GetDateTimeInNewFormat(DateTime d)
{
    return d.ToString("yyyyMMddhhmmss");
}

または、24 時間形式の場合:

public string GetDateTimeInNewFormat(DateTime d)
{
    return d.ToString("yyyyMMddHHmmss");
}
于 2013-04-18T10:26:21.150 に答える
0

あなたの質問はあなたが探しているフォーマットを明示的に述べていませんが、あなたの例のフォーマットに基づいて、あなたyyyymmddhhmmssが望むと仮定できると思います[years][months][days][hours][minutes][seconds].

それに基づいて、次のように各部分を分解できます。

Years : 通年yyyyが必要な場合は、正しいもので2013、たとえば生成されます。一般的な(推奨されていませんが)代替手段は次のとおりですyy(例13

Months : 現在、あなたの試行はmonthmmを返しません。議事録を作成します。おそらく必要ですMM(例04)。代わりにMMM(eg APR) とMMMM(eg April)を含める

Days : 繰り返しますが、これは既に正しいです。ddたとえば生成18します。

Hours : を試みるとhh、12 時間形式の時刻が生成されます。これがあなたが求めているものなら、大丈夫です。ただし、AM/PM 指定子を含めようとしていない場合 (ttちなみに使用できます)、24 時間形式HH(大文字)を選択することをお勧めします。

議事録: あなたの議事録は正しいmmです52

Seconds : 繰り返しssますが、正しく、33たとえば生成されます。


これで、それらをすべてつなぎ合わせて、次の形式を作成できます。これには、私がお勧めする 24 時間形式が含まれています。DateTimeこれは、次のようにオブジェクトToString()関数に渡すことができます。

var stringDateTime = slottingmessage.SlottingDateTime.ToString("yyyyMMddHHmmss");

メソッドのアプローチを維持したい場合は、次のGetDateTimeInNewFormatように実装できます。

public string GetDateTimeInNewFormat(DateTime dt)
{
    return dt.ToString("yyyyMMddHHmmss");
}

この関数は、サンプル コードで既に行っているのと同じ方法で呼び出されます。

GetDateTimeInNewFormat(slottingmessage.SlottingDateTime)

さまざまな日付/時刻の書式設定オプションの詳細については、ここで多くの例を参照してください。

于 2013-04-18T10:57:34.670 に答える