이 게시물의 목적부터 시작하겠습니다.
사용자의 지역 설정이 다른 날짜와 시간에 문제가 있었으며 어떻게 처리 했습니까?
때때로 스크립팅을 수행하고 해당 스크립트를 공유 할 때 다른 시간 형식 (및 날짜)과 관련된 문제에 직면했습니다 (최근 다른 로케일 및 JMP 설정을 가진 사용자와 함께 작업했습니다). 이 문제는 일반적으로 시간 형식과 관련이 있습니다. JMP는 시간에 대해 "일반"형식을 제공하지 않기 때문입니다 (날짜는 로케일 날짜를 사용할 수 있음).
JMP16 이전에는 사용자가 : 또는을 사용하고 있는지 확인하기 위해 자체 코드를 작성했습니다. 시간 구분 기호로 사용하고이를 기반으로 로케일 날짜 시간 형식을 빌드했습니다.
timeSeparator = Left(Regex(Format(Today() ,"h:m:s"), "\d", "", GLOBALREPLACE),1);
customFormat = "Locale Date Time h"||timeSeparator||"m"||timeSeparator||"s";
JMP16은 Format Pattern에 도움이되지만 포맷을 할 때 사용하는 가장 간단한 방법은 아닙니다 (사용자는 시간 구분 기호로 <::>를 사용해야 함).
<-><MM><-><YYYY> <HH24><::><MM><::><SS>", << Set Wrap(500)),
cal1 = Number Edit Box(Today()),
Text Box("Locale Date Time h:m:s", << Set Wrap(500)),
cal2 = Number Edit Box(Today()),
Text Box("Locale Date Time h.m.s", << Set Wrap(500)),
cal3 = Number Edit Box(Today()),
Text Box("yyyy-mm-ddThh:mm:ss", << Set Wrap(500)), //ISO format?
cal4 = Number Edit Box(Today()),
Text Box("Built locale date format", << Set Wrap(500)),
cal5 = Number Edit Box(Today()),
Text Box("No format", << Set Wrap(500)),
cal6 = Number Edit Box(Today())
));
cal1 << Set Format(Format("Format Pattern", "</SS></MM></HH24></YYYY></MM><-><-> <::><::>"));
cal2 << Set Format(Format("Locale Date Time h:m:s"));
cal3 << Set Format(Format("Locale Date Time h.m.s"));
cal4 << Set Format(Format("yyyy-mm-ddThh:mm:ss"));
timeSeparator = Left(Regex(Format(Today() ,"h:m:s"), "\d", "", GLOBALREPLACE),1);
customFormat = "Locale Date Time h"||timeSeparator||"m"||timeSeparator||"s";
cal5 << Set Format(customFormat);
Print("Show");
Show(Format(Today(),"Format Pattern", "<-><-> <::><::>"));
Show(Format(Today(),"Locale Date Time h:m:s"));
Show(Format(Today()(),"Locale Date Time h.m.s"));
Show(Format(Today(),"yyyy-mm-ddThh:mm:ss"));
Show(Format(Today(),customFormat));
Show(Today());
Print("Data table");
dt = New Table("Untitled",
Add Rows(1),
Compress File When Saved(1),
New Column("FormatPattern", Numeric, "Continuous", Format("Best", 12), << Set Each Value(Today())),
New Column("LocaleDateTime:", Numeric, "Continuous", Format("Best", 12), << Set Each Value(Today())),
New Column("LocaleDateTime.", Numeric, "Continuous", Format("Best", 12), << Set Each Value(Today())),
New Column("ISO?", Numeric, "Continuous", Format("Best", 12), << Set Each Value(Today())),
New Column("Custom", Numeric, "Continuous", Format("Best", 12), << Set Each Value(Today())),
New Column("NoFormat", Numeric, "Continuous", Format("Best", 12), << Set Each Value(Today()))
);
Column(dt, "FormatPattern") << Format("Format Pattern", "<-><-> <::><::>");
Column(dt, "LocaleDateTime:") << Format("Locale Date Time h:m:s");
Column(dt, "LocaleDateTime.") << Format("Locale Date Time h.m.s");
Column(dt, "ISO?") << Format("yyyy-mm-ddThh:mm:ss");
Column(dt, "Custom") << Format(customFormat);
Show(Today());Format("Format Pattern", "<YYYY><-><MM><-><DL><DD> <HH24><::><MM><::><SS>");<P> </P><P>내가하는 일에 따라 다른 솔루션이 있습니다. 텍스트 상자에 날짜와 시간을 넣으려면 일반적으로 AsDate ()를 사용하지만 특정 보고서를 작성하거나 달력 상자 옵션이있는 숫자 편집 상자를 GUI로 제공하고 싶을 때 나는 그것을 사용할 수 없습니다.</P><P>다음은 JMP 버전에 따라 현재 사용중인 문제 및 솔루션에 대한 몇 가지 예입니다.</P><DIV class="lia-spoiler-container"><A class="lia-spoiler-link" href="#" rel="nofollow noopener noreferrer" target="_blank">더보기...</A><NOSCRIPT>(읽기 강조)</NOSCRIPT><DIV class="lia-spoiler-border"><DIV class="lia-spoiler-content"><PRE><CODE class=" language-jsl">Names Default To Here(1);
Clear Log();
Print("New window");
nw = New Window("", Lineup Box(N Col(2),
Text Box("Format Pattern
JMP16을 사용한 결과 :
JMP에서 일반 시간 형식 옵션 (로케일 날짜 시간 또는 ISO 형식)을 갖는 것에 대한 JMP 지원 기능 요청을 작성했지만 지원 담당자는 그것이 구현 될 것이라는 기대를하지 않았습니다 (위시리스트 항목을 만들고 좋아요, 더 나은 기회를 얻을 수 있습니다).
그리고 질문을 반복하십시오.
날짜 및 시간에 이러한 문제가 있었으며 사용자가 다른 지역 설정을 사용하는 경우 어떻게 처리 했습니까?
편집하다:
JMP16 Pro를 사용하여 내 업무용 노트북에서 포맷 설정 :
JMP15를 사용하는 매우 이상한 날짜 형식의 다른 PC에서 :
데이터 테이블스크립팅이 동작은 늦어도 JMP17에서 변경될 예정입니다. 다음은 JMP17에서 작동하는 방법의 예입니다.
Format(Today(), "Locale Date Time h:m:s"); = "12/07/2021 16.07.20"
Format(Today(), "Locale Date Time h.m.s"); = "12/07/2021 16.07.20"
JMP17까지는 형식 패턴(JMP16) 또는 로케일 날짜 작성 방법을 사용합니다.