DateTime을 특정 문자열 형식으로 변환하거나 특정 문자열 형식으로 변환하는 방법 (예 : 지정된 형식은“yyyyMMdd”임)


132

문자열 형식의 날짜 시간을 변환하는 데 문제가 있지만 "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;

현재 날짜 / 시간 문자열 형식은 무엇입니까?
Falle1234

11
그리고 코드 스 니펫과 질문의 관련성은 무엇입니까?
Darin Dimitrov

2
나는 조금 불분명하다. 날짜 또는 DateTime 객체의 문자열 표현으로 작업하고 있습니까? 그것이 DateTime 객체라고 가정하면 호출 할 수 있습니다 obj.ToString("yyyyMMdd").
Nathan Taylor

실제로 TPOCDate2는 이미 변수이며 tpoc2 [0]의 elemnt를 yyyyMMdd 형식으로 변환하려고합니다. 이것이 귀하의 질문에 답변
되기를

어딘가에 붙어 있습니까?
Dariusz Woźniak

답변:


224

"ddMMyyyy"형식의 문자열에 날짜가 있고이를 "yyyyMMdd"로 변환하려는 경우 다음과 같이 할 수 있습니다.

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

4
코드가 붙어있어 잘 작동했습니다. DateTime.TryParse (stringValue, out outputInDateTime);
DJ '

64

날짜 분석 시간 :

DateTime을 구문 분석하려면 다음 방법 중 하나를 사용하십시오.

또는 try-parse 패턴을 사용할 수 있습니다 .

사용자 정의 날짜 및 시간 형식 문자열 에 대해 자세히 알아보십시오 .

DateTime을 문자열로 변환 :

DateTime을 "yyyyMMdd"형식의 문자열로 반환하려면 ToStringmethod를 사용할 수 있습니다 .

  • 코드 스 니펫 예제 : string date = DateTime.ToString("yyyyMMdd");
  • 대문자 M 은 월을 나타내고 소문자 m 은 분을 나타냅니다.

너의 경우:

귀하의 경우 날짜가 다른 형식이거나 누락 된 시나리오를 처리하고 싶지 않다고 가정하면 사용하는 것이 가장 편리합니다 ParseExact.

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

7
이것은 오래된 주제이지만, 검색하는 사람들을 위해 위의 링크 "문화 별 형식"은 이제 죽은 링크입니다. 다음은 현재의 유익한 사용자 정의 날짜 및 시간 형식 문자열입니다.

40

문자열을 다음 DateTime과 같은 값으로 변환 할 수 있습니다 .

DateTime date = DateTime.Parse(something);

다음 DateTime과 같이 값을 형식화 된 문자열 로 변환 할 수 있습니다 .

date.ToString("yyyyMMdd");

11

yyyy-MM-dd 날짜 형식의 문자열 : 예 :

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

10

TIME 과 함께 DATE 를 문자열로 사용 하려는 경우 . 우리는 이렇게 할 수 있습니다 :

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

7
분은 작은 "m"이어야합니다!? "yyyyMMdd-HHmmss"
CeOnSql

6

DateTime.TryParseExact()특정 날짜 형식과 일치 시키려면 사용하십시오.

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

5

DateTime.TryParse()대신에 사용할 수 있습니다 DateTime.Parse().
으로 TryParse()는 성공과 함께 경우 반환 값을 가지고 Parse()당신은 예외를 처리해야


5

단순히 이런 식으로하십시오.

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

행복한 코딩 :)


3

yyyy / mm / dd의 문자열이 없으며 yyyyMMdd 형식으로 필요합니다.

문자열에서 슬래시를 제거 해야하는 경우 교체하지 않습니까?

예:

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

myDateString은 이제 "20130328"이어야합니다.

과잉의 적은 :)



2

속성 이름을 기준으로 할당하여 문자열을 날짜로 변환하려고하는 것처럼 보입니다.

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

아마도 현재 UI 문화로 인한 것일 수 있으므로 할당 된 날짜 문자열을 올바르게 해석 할 수 없습니다.


yyyy / mm / dd의 문자열이 없으며 yyyyMMdd 형식으로 필요합니다
Ashutosh

청구자를 수행하는 동안 AUXillaryRecord.TPOCDate2 = tpoc2 [0] .ToString ( "yyyyMMdd"); 빌드 오류가 발생합니다. 'string.ToString (System.IFormatProvider)'에 대해 가장 오버로드 된 메소드 일치에는 잘못된 인수가 있습니다
Ashutosh

@ 매트-정말? 탭 추가에 대한 답변으로 표시되지 않은 4 년 이상의 응답을 수정 했습니까? 그것은 당신이 거기에있는 OCD의 심각한 나쁜 경우입니다.
피터

1

C # 6에서 :

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

결과는 "2019-01-15T11 : 46 : 33.2752667Z"입니다.


0

이 답변을 검색하는 동안 더 간단한 방법을 찾았습니다.

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

어떻 DateTime습니까? 처럼 DateTime newDate = DateTime.Parse(Session["date"].ToString());?
WTFZane

0

이 코드를 시도해 볼 수 있습니다

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

또는

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

1
하나님 (우리의 구세주 Harambe)을 사랑하기 위해 Convert.ToDateTime을 사용하지 마십시오.이 것은 너무 느립니다 (~ 100ms)! ParseExact 또는 TryParse를 사용하십시오-더 빠릅니다 !!!
Koshera
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.