이 게시물의 목적부터 시작해 보겠습니다.
사용자의 지역 설정이 다를 때 날짜와 시간에 문제가 있었고 이를 어떻게 처리했습니까?
때때로 스크립트를 작성하고 해당 스크립트를 공유할 때 시간 형식(및 날짜)이 다른 문제에 직면했습니다(최근에는 다른 로케일 및 JMP 설정을 가진 사용자와 작업해 왔습니다). 이 문제는 일반적으로 시간 형식과 관련이 있습니다. JMP는 시간에 대한 "일반" 형식을 제공하지 않기 때문입니다(날짜에 대해서는 Locale Date를 사용할 수 있음).
JMP16 이전에는 사용자가 : 또는 를 사용하고 있는지 확인하기 위해 자체 코드를 작성했습니다. 시간 구분 기호로 사용한 다음 이를 기반으로 로케일 날짜 시간 형식을 구축했습니다.
timeSeparator = Left(Regex(Format(Today() ,"h:m:s"), "\d", "", GLOBALREPLACE),1);
customFormat = "Locale Date Time h"||timeSeparator||"m"||timeSeparator||"s";
JMP16은 형식 패턴을 사용하여 이를 지원하지만 형식 지정을 수행할 때 사용하기 가장 간단한 것은 아닙니다(사용자는 시간 구분 기호로 <::>를 사용해야 함).
<HH24><::><MM> <::><SS> ");</SS></MM></HH24> 내가 하고 있는 일에 따라 다른 솔루션이 있습니다. 텍스트 상자에 날짜와 시간을 표시하려면 일반적으로 AsDate()를 사용하지만 특정 보고서를 작성하거나 GUI에 달력 상자 옵션이 있는 숫자 편집 상자를 제공하려는 경우 나는 그것을 사용할 수 없습니다.다음은 현재 JMP 버전에 따라 사용하고 있는 문제와 솔루션에 대한 몇 가지 예입니다.더보기...(읽을 하이라이트)Names Default To Here(1);
Clear Log();
Print("New window");
nw = New Window("", Lineup Box(N Col(2),
Text Box("Format Pattern <-><MM> <-><YYYY><HH24> <::><MM> <::><SS> ", << Set Wrap(500)), cal1 = 숫자 편집 상자(Today()), Text Box("로캘 날짜 시간 h:m:s", << Set Wrap(500)), cal2 = 숫자 편집 상자 (오늘()), Text Box("로캘 날짜 시간 hms", << Set Wrap(500)), cal3 = 숫자 편집 상자(오늘()), Text Box("yyyy-mm-ddThh:mm:ss" , << Set Wrap(500)), //ISO 형식? cal4 = 숫자 편집 상자(Today()), Text Box("빌트 로케일 날짜 형식", << Set Wrap(500)), cal5 = 숫자 편집 상자 (Today()), Text Box("형식 없음", << Set Wrap(500)), cal6 = Number Edit Box(Today()) )); cal1 << Set Format(Format("서식 패턴", "</SS></MM></HH24></YYYY></MM><-> <-> <::> <::> ")); cal2 << 형식 설정(Format("로캘 날짜 시간 h:m:s")); cal3 << 형식 설정(Format("로캘 날짜 시간 hms")); cal4 << 형식 설정(형식( "yyyy-mm-ddThh:mm:ss")); timeSeparator = Left(Regex(Format(Today() ,"h:m:s"), "\d", "", GLOBALREPLACE),1); customFormat = "로케일 날짜 시간 h"||timeSeparator||"m"||timeSeparator||"s"; cal5 << 형식 설정(customFormat); Print("표시"); Show(Format(Today(),"Format 패턴", "<-> <-> <::> <::> ")); Show(Format(Today(),"로캘 날짜 시간 h:m:s")); Show(Format(Today()(),"로캘 날짜 시간 hms")); Show(Format(오늘( ),"yyyy-mm-ddThh:mm:ss")); Show(Format(Today(),customFormat)); Show(Today()); Print("데이터 테이블"); dt = New Table("제목 없음 ", 행 추가(1), 저장 시 파일 압축(1), New Column("FormatPattern", Numeric, "Continuous", Format("Best", 12), << 각 값 설정(오늘())), New Column("LocaleDateTime:", 숫자, "연속", Format("Best", 12), << 각 값 설정(오늘())), New Column("LocaleDateTime.", 숫자, "연속", 형식 ("최고", 12), << 각 값 설정(오늘())), New Column("ISO?", 숫자, "연속", Format("최고", 12), << 각 값 설정(오늘 ())), New Column("Custom", Numeric, "Continuous", Format("Best", 12), << 각 값 설정(Today())), New Column("NoFormat", Numeric, "Continuous" ", Format("Best", 12), << 각 값 설정(Today())) ); Column(dt, "FormatPattern") << Format("형식 패턴", "<-><MM><-><YYYY><HH24> <::><MM> <::><SS> "); Column(dt, "LocaleDateTime:") << Format("로캘 날짜 시간 h:m:s"); Column(dt, "LocaleDateTime.") << Format("로캘 날짜 시간 hms"); Column (dt, "ISO?") << Format("yyyy-mm-ddThh:mm:ss"); Column(dt, "사용자 정의") << Format(customFormat); Show(Today());</SS></MM></HH24></YYYY></MM>Format("Format Pattern", "<YYYY><-><MM> <-></MM></YYYY>
JMP16을 사용한 결과:
JMP에 일반 시간 형식 옵션(로캘 날짜 시간 또는 ISO 형식)을 갖는 것에 대한 JMP 지원 기능 요청을 생성했지만 지원 담당자는 이 기능이 구현될 것이라고 별로 기대하지 않았습니다(아마도 위시리스트 항목을 생성하고 칭찬을 받으면 더 나은 기회를 얻을 수 있습니다).
그리고 질문을 반복합니다.
날짜 및 시간과 관련하여 이러한 문제가 발생한 적이 있으며 사용자의 지역 설정이 다를 때 이를 어떻게 처리했습니까?
편집하다:
JMP16 Pro를 사용하여 업무용 노트북에서 설정 형식 지정:
JMP15를 사용하여 매우 이상한 날짜 형식을 가진 다른 PC에서: