문화 형식에 문제가 있습니까?
예. 사용자는 시간 구분 기호가 도트 인 문화권에 있어야합니다. ":"및 "/"는 모두 사용자 정의 날짜 및 시간 형식 으로 문화권에 따라 해석 됩니다 .
결과 문자열이 점 대신 콜론으로 구분되도록하려면 어떻게해야합니까?
다음을 지정하는 것이 좋습니다 CultureInfo.InvariantCulture
.
string text = dateTime.ToString("MM/dd/yyyy HH:mm:ss.fff",
CultureInfo.InvariantCulture);
또는 시간 및 날짜 구분 기호를 인용 할 수도 있습니다.
string text = dateTime.ToString("MM'/'dd'/'yyyy HH':'mm':'ss.fff");
...하지만 기본 캘린더 시스템이 Gregorian 캘린더가 아닌 문화권에서 사용자를 실행하는 경우 예상치 못한 "흥미로운"결과를 얻을 수 있습니다. 예를 들어 다음 코드를 사용하십시오.
using System;
using System.Globalization;
using System.Threading;
class Test
{
static void Main()
{
DateTime now = DateTime.Now;
CultureInfo culture = new CultureInfo("ar-SA"); // Saudi Arabia
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine(now.ToString("yyyy-MM-ddTHH:mm:ss.fff"));
}
}
다음과 같은 결과 (2013 년 9 월 18 일)를 생성합니다.
11/12/1434 15:04:31.750
내 생각 엔 귀하의 웹 서비스가 놀랍습니다!
실제로 불변 문화를 사용하는 것뿐만 아니라 ISO-8601 날짜 형식으로 변경하는 것이 좋습니다 .
string text = dateTime.ToString("yyyy-MM-ddTHH:mm:ss.fff");
이것은 전 세계적으로 허용되는 형식입니다. 정렬 가능하며 월과 일 순서가 분명합니다. (2013 년 6 월 7 일 또는 7 월 6 일은 독자의 문화에 따라 해석 될 수 있습니다.)