web-dev-qa-db-ja.com

どのようにDateTimeを特定の文字列フォーマットへ/から変換するか(両方の方法、例えば与えられたフォーマットは "yyyyMMdd")?

文字列形式のdatetimeの変換に問題がありますが、"yyyyMMdd"形式を使用して変換することはできません。

私のコードは:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString();
string[] tpocinfo = Regex.Split(tpoc,";");

for (int i = 0; i < tpocinfo.Length; i++)
{
    switch (i)
    {
        case 0:
        {
            string[] tpoc2 = Regex.Split(tpocinfo[0], ",");
            claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
            claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]);
            claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString();
        }
        break;
124
Ashutosh

"ddMMyyyy"という形式の文字列の中に日付があり、それを "yyyyMMdd"に変換したい場合は、次のようにします。

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
215
Falle1234

DateTimeの解析:

DateTimeを解析するには、以下のいずれかの方法を使用します。

あるいは、 try-parse patternを使用することもできます。

カスタムの日付と時刻のフォーマット文字列 についてもっと読んでください。

DateTimeを文字列に変換する:

DateTimeを "yyyyMMdd"形式の文字列として返すには、 ToString methodを使用できます。

  • コードスニペットの例:string date = DateTime.ToString("yyyyMMdd");
  • 大文字Mは月を表し、小文字mは分を表します。

あなたの場合:

あなたのケースでは、日付が異なるフォーマットや間違っているときにシナリオを扱いたくないと仮定すると、ParseExactを使うのが最も便利でしょう:

string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse, 
                                          "yyyyMMdd",
                                          CultureInfo.InvariantCulture);
61

あなたの文字列をこのようなDateTime値に変換することができます:

DateTime date = DateTime.Parse(something);

DateTime値を次のようなフォーマットされた文字列に変換することができます。

date.ToString("yyyyMMdd");
36
SLaks

Yyyy-MM-ddの日付形式の文字列:例:

TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");   
11
NSiva

DATETIMEの文字列として使用する場合同様に。私たちはこのようにすることができます:

//Date and Time is taking as current system Date-Time    
DateTime.Now.ToString("yyyyMMdd-HHMMss");
10
Anish

特定の日付フォーマットと照合したい場合はDateTime.TryParseExact()を使用してください。

   string format = "yyyyMMdd"; 
    DateTime dateTime;
    DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
                                             DateTimeStyles.None, out dateTime);
6
Mudassir Hasan

DateTime.TryParse()の代わりにDateTime.Parse()を使うことができます。
TryParse()では成功した場合は戻り値が返され、Parse()では例外を処理する必要があります。

5
peter

単にこうするだけです。

string yourFormat = DateTime.Now.ToString("yyyyMMdd");

ハッピーコーディング:)

5

それはフォーマットに変換する簡単な方法です

 DateTime.Now.ToString("yyyyMMdd");
3
manoj kumar

いいえそのyyyy/mm/ddの文字列と私はyyyyMMddフォーマットでそれを必要とする

文字列からスラッシュを削除するだけでよい場合は、それらを置き換えないでください。

例:

myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

myDateStringは「20130328」になります。

やり過ぎの少ない:)

3
SergioMSCosta

プロパティ名に基づいて、割り当てによって文字列を日付に変換しようとしているように見えます。

claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();

これはおそらく現在のUIカルチャによるものなので、割り当てられたときに日付文字列を正しく解釈できません。

2
Peter

C#6より

var dateTimeUtcAsString = $"{DateTime.UtcNow:o}";

結果は「2019-01-15T11:46:33.2752667Z」になります。

1
ben alfasi

あなたはこれらのコードを試すことができます

claimantAuxillaryRecord.TPOCDate2  = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); 

または

claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss"); 
0
A. Zalonis

この答えも探している間に私が出会ったもっと簡単な方法。

string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));