모델 기반 앱의 날짜 및 시간 문제 해결
날짜 및 시간 값이 하루 또는 몇 시간 동안 해제된 경우 표준 시간대 또는 일광 절약 시간 조정으로 인해 발생할 수 있습니다. 이 문서에서는 다음과 같은 문제를 해결하는 팁을 제공합니다.
- 날짜 및 시간 필드에 잘못된 값이 표시됩니다.
- 날짜만 값은 일부 사용자 및 표준 시간대에 대해 잘못된 날짜를 표시합니다.
- 날짜 및 시간 필드에는 앱의 일부 부분에 올바른 값이 표시되지만 다른 부분에는 표시되지 않습니다.
- 날짜 및 시간 값을 변경하고 저장한 후에는 자동으로 다른 값으로 변경됩니다.
- 일광 절약 전환 날짜를 입력하면 날짜가 1일로 꺼지거나 시간이 1시간으로 해제됩니다.
서버 또는 클라이언트 문제인지 확인
모델 기반 앱은 웹앱입니다. Dataverse 클라우드 서비스(서버)에서 데이터를 가져옵니다. 동일한 데이터는 여러 앱(클라이언트)에 전원을 공급할 수 있습니다. 서버 또는 클라이언트에서 오류가 발생할 수 있습니다.
서버에 저장된 날짜 및 시간 값이 예기치 않은 경우 사용자 또는 시스템 표준 시간대에 관계없이 모든 앱에 잘못 표시될 수 있습니다. 따라서 서버 값을 확인하는 것은 중요한 첫 번째 단계입니다.
날짜 및 시간 열의 구성 확인
Dataverse는 날짜 및 시간 열(필드)에 대해 다양한 표준 시간대 조정 동작을 지원합니다 . 문제를 해결하기 전에 시스템 프로세스 날짜 및 시간 값의 여러 부분을 이해하는 것이 중요 합니다.
Power Apps 포털 또는 솔루션 탐색기에서 날짜 및 시간 열 옵션을 확인합니다.
- 사용자의 표준 시간대를 차지하는지 여부
- 값의 시간 부분을 표시하는지 여부
올바른 값이 서버에 저장되어 있는지 확인합니다.
날짜 및 시간 값은 항상 서버에 UTC로 저장됩니다. Web API 쿼리를 사용하여 서버에서 원시 값을 볼 수 있습니다.
다음은 행(레코드)에 대한 열을 가져오는 쿼리입니다.
[Organization URI]/api/data/v9.2/<entity set name>(<row id>)?$select=<column name>
사용되는 테이블 및 열 이름은 표시 이름이 아니라 논리적 이름입니다.
팁
행의 ID를 쉽게 찾을 수 있는 방법은 모델 기반 앱에서 여는 것입니다. ID는 페이지 URL에서 찾을 수 있습니다.
다음 예제에서는 ID가 있는 scheduledstart
행에 appointment
대한 테이블의 열을 d2862246-4763-ee11-8def-000d3a34118b
가져옵니다.
https://myorg.crm.dynamics.com/api/data/v9.2/appointments(d2862246-4763-ee11-8def-000d3a34118b)?$select=scheduledstart
브라우저 주소 표시줄에 입력하면 다음과 같이 표시됩니다.
{
"@odata.context": "https://myorg.crm.dynamics.com/api/data/v9.2/$metadata#appointments(scheduledstart)/$entity",
"@odata.etag": "W/\"11472725\"",
"scheduledstart": "2023-10-15T07:30:00Z",
"activityid": "d2862246-4763-ee11-8def-000d3a34118b"
}
따라서 scheduledstart
appointment
2023년 10월 15일 오전 7시 30분입니다. Z
끝에 값이 UTC임을 나타냅니다.
표준 시간대 UTC-8의 사용자가 모델 기반 앱에서 이 열을 보고 있다고 가정해 보겠습니다. 이러한 값은 서로 다른 열 옵션에 대해 예상되는 값입니다.
표준 시간대 조정 동작 | 형식 | 앱에 표시된 값 |
---|---|---|
사용자 현지 시간 | 날짜 및 시간 | 2023년 10월 14일 오후 11시 30분 |
사용자 현지 시간 | 날짜만 | 2023년 10월 14일 |
표준 시간대 독립 | 날짜 및 시간 | 2023년 10월 15일 오전 7시 30분 |
표준 시간대 독립 | 날짜만 | 2023년 10월 15일 |
날짜만 | - | 2023년 10월 15일 |
앱에 표시된 값이 올바르게 조정되지 않으면 클라이언트 문제일 수 있습니다. 서버 값으로 시작하는 것이 올바르지 않으면 서버 문제일 수 있습니다.
서버에서 형식이 지정된 값 확인
표준 시간대 및 일광 절약 시간 조정은 서버 또는 앱에서 수행할 수 있습니다. 동일한 열에 앱의 다른 부분에 다른 값이 표시되면 앱의 일부 부분에서 서버의 형식이 지정된 값을 사용하는 반면 다른 부분은 앱에서 조정을 수행하는 것일 수 있습니다.
이것은 문제가 될 수 있습니다. 보고하기 전에 서버에서 형식이 지정된 값을 확인하여 서버 또는 클라이언트 문제인지를 격리할 수 있습니다.
예를 들면 다음과 같습니다.
GET https://myorg.crm.dynamics.com/api/data/v9.2/appointments(d2862246-4763-ee11-8def-000d3a34118b)?$select=scheduledstart
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"
응답에는 서버에서 조정한 값이 포함됩니다. 이 예제에서 사용자는 UTC-8 표준 시간대에 있고 scheduledstart
사용자 로컬 동작을 가집니다. 따라서 형식이 지정된 값은 원시 값 뒤에 8시간 뒤입니다.
{
"@odata.context": "https://myorg.crm.dynamics.com/api/data/v9.2/$metadata#appointments(scheduledstart)/$entity",
"@odata.etag": "W/\"11472725\"",
"scheduledstart@OData.Community.Display.V1.FormattedValue": "10/14/2023 11:30 PM",
"scheduledstart": "2023-10-15T07:30:00Z",
"activityid": "2ad8786a-9164-ee11-9ae7-0022480a0700"
}
형식이 지정된 값이 올바르지 않으면 서버 문제입니다. 올바른 경우 클라이언트 문제입니다.
예기치 않은 서버 값 조사
예기치 않은 서버 값의 가능한 원인은 다음과 같습니다.
- 표준 시간대 조정 동작 및 형식을 올바르게 구성하지 않았을 수 있습니다.
- 서버에서 실행되는 비즈니스 규칙 및 워크플로 는 저장 전이나 후에 값을 변경할 수 있습니다. 앱 내에서 클라이언트 스크립트는 저장을 위해 서버로 보내기 전에 값을 변경할 수 있습니다.
사용자 지정 문제 또는 제품 문제인지 확인
사용자 지정은 예기치 않은 동작으로 이어질 수 있습니다. 다음 메서드는 사용자 지정으로 인한 문제를 배제하는 데 도움이 될 수 있습니다.
사용자 지정 스크립트 사용 안 함
사용자 지정 스크립트는 종종 문제를 일으킵니다. 일시적으로 사용하지 않도록 설정해 보세요.
새 날짜 및 시간 열 만들기
새 날짜 및 시간 열을 만드는 것은 구성 오류 또는 비즈니스 규칙과 같은 사용자 지정으로 인해 문제가 발생하는지 확인하는 가장 쉬운 방법입니다. 다른 테이블과 앱을 사용하는 것이 가장 좋습니다.
새 열이 예상대로 작동하는 경우 사용자 지정 문제일 수 있습니다. 원래 열과 비교하여 차이를 찾습니다.
새 열에 동일한 문제가 있는 경우 제품 문제일 수 있습니다. vanilla repro 모델 기반 앱을 만들고 지원 요청을 통해 보고할 수 있습니다.
다른 표준 시간대 사용해 보기
표준 시간대 및 일광 절약 시간 조정으로 인해 예기치 않은 값이 발생하는지 확인하려면 사용자의 표준 시간대를 변경해 보세요.
모델 기반 앱의 표준 시간대에 영향을 주는 두 가지 설정이 있습니다.
- 개인 옵션의 표준 시간대입니다.
- 시스템 표준 시간대입니다. 변경하는 방법에 대한 자세한 내용은 Windows, Android, iOS 또는 macOS의 해당 설명서를 참조하세요.
사용할 수 있는 유용한 조합:
- 개인 옵션의 표준 시간대를 시스템 표준 시간대와 일치합니다.
- UTC 표준 시간대를 사용합니다.
- 동일한 오프셋으로 표준 시간대를 사용하지만 일광 절약 시간을 관찰하지는 않습니다.
"날짜만" 형식을 "날짜 및 시간"으로 변경
날짜 전용 값이 하루 동안 해제된 경우 시간 부분을 표시하여 표준 시간대 조정이 원인일 수 있는지 확인하는 것이 좋습니다. Power Apps 포털 또는 솔루션 탐색기에서 열 형식을 일시적으로 변경할 수 있습니다.
2자리 연도 사용 안 함
2자리 연도는 모호합니다. 예를 들어 40은 1940, 2040 또는 2140을 의미할 수 있습니다. 시스템에서 2자리 연도를 해석하는 방법은 시간이 지남에 따라 변경될 수 있으며 변경될 수 있습니다.
또한 전체 날짜 및 시간 값이 표시되지 않는 경우를 조사하기도 어렵습니다. 이러한 이유로, 특히 날짜를 입력할 때 4자리 연도를 사용하는 것이 좋습니다.
4자리 연도로 영구적으로 전환할 수 없는 경우 일시적으로 문제를 해결해 보세요.