DataTable
을 통해 워크 시트를 추가 할 때 날짜 형식이 응용 프로그램의 로캘/문화를 따르지만 컴퓨터에서 가져 오는 것으로 보입니다.DataTable의 ClosedXML Worksheet가 Culture를 따르지 않습니다.
string culture = "en-GB";
var newCulture = new CultureInfo(culture);
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture; //probably unnecessary?
CultureInfo.DefaultThreadCurrentCulture = newCulture;
// ... select myDateColumn, myIntCol, myString
workBook.AddWorksheet(myDataTableThatContainsQueryResults, tabName);
지금, 당신은 '31/10/2017'
을 있어야 en-GB
로케일의 간단한 날짜 형식을 사용하여 형식을 첫 번째 열 (myDateColumn
)를 기대하지만, 대신 '10/31/2017'
로 나오고.
DataTable에서 로캘을 확인한 후에 SQLDataAdapter에서 해당 로캘을 확인했는데 중첩 된 날짜 형식과 마찬가지로 정확합니다. 여러 쿼리가 있으며 날짜가 미리 알려지지 않습니다.
누군가가 제공 할 수있는 어떤 방향으로 생각해보십시오! ClosedXML의 GitHub의의의 repo에 몇 가지 검사를보고 내가 의견을 명성이없는
SQLAdapter 결과를 기반으로 통합 문서 당 여러 문화권을 사용하려고합니까? ClosedXml이이를 지원하는지 모르겠다. (코드 파기가 더 필요하다) –
아니요, 전체 통합 문서에 대해 단일 문화권을 사용하고 있습니다. 새 통합 문서를 인스턴스화하기 전에 설정됩니다. –
@ArisBerard 문제에 대한 해결책을 찾을 수 있었습니까? –