Hành vi và định dạng của cột ngày và giờ

Trong Microsoft Dataverse, bạn có thể chỉ định cách hiển thị giá trị ngày và giờ cho người dùng cũng như cách chúng được điều chỉnh theo múi giờ.

Có hai tùy chọn cho cột ngày và giờ.

  • Hành vi: Có điều chỉnh giá trị cho múi giờ hay không.
  • Định dạng: Có hiển thị phần thời gian của giá trị hay không.

Hành vi

Dataverse lưu trữ tất cả các giá trị ngày và giờ theo múi giờ UTC. Khi ứng dụng của bạn hiển thị các giá trị hoặc xử lý các giá trị do người dùng nhập vào Dataverse và các ứng dụng dựa trên mô hình có thể điều chỉnh theo múi giờ của người dùng bằng các tùy chọn Hành vi này.

  • Người dùng cục bộ: Điều chỉnh giá trị theo múi giờ của người dùng. Đây là hoạt động mặc định. Bạn có thể thay đổi hành vi này một lần thành hành vi khác.
  • Độc lập múi giờ: Không chuyển đổi múi giờ.
  • Chỉ ngày: Không chuyển đổi múi giờ. Không giống như Múi giờ độc lập, phần thời gian không được lưu trữ.

Múi giờ của người dùng được đặt trong tùy chọn cá nhân, không phải múi giờ hệ thống trong Windows, Android, iOS hoặc macOS. Tuy nhiên, múi giờ hệ thống có thể ảnh hưởng đến các tập lệnh máy khách hoạt động với Ngày tháng JavaScript.

Định dạng

Tất cả các cột ngày và giờ đều có phần thời gian trừ khi hành vi của nó là Chỉ ngày. Định dạng xác định xem có hiển thị phần thời gian của giá trị hay không.

  • Date and time: Hiển thị ngày, giờ của giá trị.
  • Chỉ ngày: Chỉ hiển thị phần ngày của giá trị.

Lưu ý

Người dùng vẫn có thể thay đổi phần thời gian nếu Định dạngChỉ ngày. Ví dụ: với lệnh gọi API Web hoặc bằng cách sử dụng điều khiển có phần thời gian. Điều này khác với Chỉ ngày Hành vi, trong đó phần thời gian hoàn toàn không được lưu trữ.

Hướng dẫn sử dụng

Sử dụng hành vi độc lập với múi giờ khi không cần thông tin về múi giờ, chẳng hạn như thời gian nhận phòng khách sạn. Với lựa chọn này, người dùng ở tất cả các múi giờ sẽ thấy cùng một giá trị ngày và giờ.

Sử dụng Hành vi chỉ ngày khi không cần thông tin về thời gian trong ngày và múi giờ, chẳng hạn như sinh nhật hoặc ngày kỷ niệm. Với lựa chọn này, người dùng ở tất cả các múi giờ đều thấy giá trị ngày giống hệt nhau.

Hành vi độc lập về múi giờ với định dạng Chỉ ngày thực tế giống như Chỉ ngày hành vi. Sử dụng phần trước nếu bạn không chắc liệu mình có cần phần thời gian trong tương lai hay không.

Ví dụ

Hiển thị giá trị

Dataverse lưu trữ 2023-10-15T07:30:00Z (hoặc 2023-10-15 cho chỉ ngày hành vi). Người dùng ở múi giờ UTC-8 nhìn thấy những thông tin này trong ứng dụng dựa trên mô hình hoặc với yêu cầu API Web cho giá trị được định dạng:

Hành vi Định dạng Giá trị hiển thị
Địa phương của người dùng Ngày và giờ Ngày 14 tháng 10 năm 2023, 23:30
Địa phương của người dùng Chỉ định dạng ngày Ngày 14 tháng 10 năm 2023
Múi giờ độc lập Ngày và giờ Ngày 15 tháng 10 năm 2023, 7:30 sáng
Múi giờ độc lập Chỉ định dạng ngày Ngày 15 tháng 10 năm 2023
Chỉ định dạng ngày - Ngày 15 tháng 10 năm 2023

Nhập giá trị trong ứng dụng

Người dùng ở múi giờ UTC-8 nhập October 14th, 2023, 11:30 pm vào ứng dụng dựa trên mô hình. Giá trị được lưu trong Dataverse dưới dạng:

Hành vi Định dạng Giá trị được lưu trong Dataverse
Địa phương của người dùng Ngày và giờ 2023-10-15T07:30:00Z
Địa phương của người dùng Chỉ định dạng ngày 2023-10-15T07:30:00Z
Múi giờ độc lập Ngày và giờ 2023-10-14T23:30:00Z
Múi giờ độc lập Chỉ định dạng ngày 2023-10-14T23:30:00Z
Chỉ định dạng ngày - 2023-10-14

Nếu người dùng chỉ nhập ngày October 14th, 2023 thì phần thời gian được giả định là 12:00 sáng.

Hành vi Định dạng Giá trị được lưu trong Dataverse
Địa phương của người dùng Chỉ định dạng ngày 2023-10-14T08:00:00Z
Múi giờ độc lập Chỉ định dạng ngày 2023-10-14T00:00:00Z
Chỉ định dạng ngày - 2023-10-14

Nhập giá trị không hợp lệ trong ứng dụng

Các khách hàng khác nhau có những cách khác nhau để xử lý dữ liệu đầu vào không hợp lệ. Ví dụ: theo múi giờ Thái Bình Dương, chế độ tiết kiệm ánh sáng ban ngày bắt đầu lúc 2 giờ sáng ngày 12 tháng 3 năm 2023, chuyển thời gian tiến lên một giờ đến 3 giờ sáng. Khoảng thời gian từ 2 giờ sáng đến 3 giờ sáng ngày hôm đó không tồn tại. Khi người dùng cố gắng nhập một giá trị trong khoảng thời gian đó, ứng dụng có thể thực hiện một trong những thao tác sau:

  • Thay đổi về thời gian hợp lệ trước đó hoặc tiếp theo.
  • Hoàn nguyên về giá trị đã biết cuối cùng.
  • Hiển thị một thông báo lỗi.
  • Không hiển thị thời gian từ 2:00 sáng đến 3:00 sáng trong bộ chọn thời gian để người dùng không thể chọn chúng ngay từ đầu.

Tương tự, các khách hàng khác nhau có những cách khác nhau để xử lý các khoảng thời gian lặp lại. Ví dụ: theo múi giờ Thái Bình Dương, chế độ tiết kiệm ánh sáng ban ngày kết thúc lúc 2 giờ sáng ngày 5 tháng 11 năm 2023, khiến thời gian lùi lại một giờ đến 1 giờ sáng. Khoảng thời gian từ 1 giờ sáng đến 2 giờ sáng ngày hôm đó được lặp lại hai lần. Thời điểm như 1:30 sáng có thể đề cập đến một trong hai múi giờ. Nếu bạn cần hiển thị hoặc nhập rõ ràng thời gian trong phạm vi đó, tốt nhất bạn nên tạm thời chuyển sang múi giờ không sử dụng chế độ tiết kiệm ánh sáng ban ngày.

Nhận giá trị thô bằng API Web

Dataverse lưu trữ 2023-10-15T07:30:00Z (hoặc 2023-10-15 cho chỉ ngày hành vi). Người dùng ở mọi múi giờ nhận được những thứ này với yêu cầu API Web cho giá trị:

Hành vi Định dạng Giá trị thô
Địa phương của người dùng Ngày và giờ 2023-10-15T07:30:00Z
Địa phương của người dùng Chỉ định dạng ngày 2023-10-15T07:30:00Z
Múi giờ độc lập Ngày và giờ 2023-10-15T07:30:00Z
Múi giờ độc lập Chỉ định dạng ngày 2023-10-15T07:30:00Z
Chỉ định dạng ngày - 2023-10-15

Nhận giá trị bằng API ứng dụng khách

Người dùng ở múi giờ UTC-8 nhập October 14th, 2023, 11:30 pm vào ứng dụng dựa trên mô hình. API ứng dụng khách có chức năng như formContext.getAttribute(<column name>).getValue() trả về giá trị khi áp dụng điều chỉnh múi giờ:

Hành vi Định dạng JavaScript dateValue.toUTCString()
Địa phương của người dùng Ngày và giờ 2023-10-15 07:30 (UTC)
Địa phương của người dùng Chỉ định dạng ngày 2023-10-15 07:30 (UTC)

Đối với hành vi độc lập với múi giờ, giá trị Ngày JavaScript nằm trong múi giờ của trình duyệt:

Hành vi Định dạng JavaScript dateValue.toString()
Múi giờ độc lập Ngày và giờ 2023-10-14 23:30 (múi giờ trình duyệt)
Múi giờ độc lập Chỉ định dạng ngày 2023-10-14 23:30 (múi giờ trình duyệt)

Giá trị ngày tháng trong JavaScript luôn có thành phần thời gian. Đó là lý do tại sao Hành vi chỉ ngày có thành phần thời gian là 12:00 sáng:

Hành vi Định dạng JavaScript dateValue.toString()
Chỉ định dạng ngày - 2023-10-15 00:00 (múi giờ trình duyệt)

Lưu ý

Giá trị ngày tháng của JavaScript bị ảnh hưởng bởi múi giờ của trình duyệt, xuất phát từ cài đặt hệ điều hành của thiết bị.

Đối với hành vi cục bộ của người dùng, kết quả API ứng dụng khách phải được hiểu là giá trị UTC. Sử dụng Date.getUTCDate(), Date.getUTCHours(), v.v. để làm việc với nó. Để biết những gì người dùng nhìn thấy, hãy áp dụng getTimeZoneOffsetMinutes. Không sử dụng Date.getDate(), Date.getHours(), v.v. vì những thứ này sẽ hiển thị giá trị theo múi giờ của trình duyệt.

Đối với Hành vi độc lập với múi giờChỉ ngày, kết quả API ứng dụng khách phải được hiểu là một giá trị trong trình duyệt Múi giờ. Sử dụng Date.getDate(), Date.getHours(), v.v. để làm việc với nó. Không sử dụng Date.getUTCDate(), Date.getUTCHours(), v.v. vì bạn không phải điều chỉnh theo bất kỳ múi giờ nào.

Thay đổi hành vi cục bộ của người dùng

Trừ khi nhà xuất bản của giải pháp được quản lý ngăn chặn điều này, bạn có thể thay đổi hành vi của các cột ngày tùy chỉnh hiện tại từ Người dùng cục bộ thành Chỉ ngày hoặc Không phụ thuộc vào múi giờ. Đây là một sự thay đổi một lần.

Việc thay đổi hành vi cột sẽ ảnh hưởng đến các giá trị của cột đã được thêm hoặc sửa đổi sau khi thay đổi hành vi cột. Các giá trị cột hiện có vẫn còn trong cơ sở dữ liệu ở định dạng múi giờ UTC. Để thay đổi hành vi của các giá trị cột hiện có từ UTC thành Chỉ ngày, bạn có thể cần sự trợ giúp của nhà phát triển để chuyển đổi hành vi của ngày hiện tại và các giá trị thời gian trong cơ sở dữ liệu.

Cảnh báo

Trước khi thay đổi hành vi của một cột ngày và giờ hiện có, bạn nên xem lại tất cả quan hệ phụ thuộc của cột, chẳng hạn như quy tắc công việc, quy trình làm việc, cột tính toán hoặc cột tổng số nhằm đảm bảo rằng không có vấn đề nào phát sinh do thay đổi hành vi. Sau khi thay đổi hành vi của cột ngày và giờ, hãy mở từng quy tắc công việc, quy trình làm việc, cột được tính toán và cột tổng số tùy thuộc vào cột mà bạn đã thay đổi, xem lại thông tin và lưu nó để đảm bảo rằng hành vi của cột ngày và giờ mới nhất và giá trị được sử dụng.

Thay đổi hành vi trong khi nhập giải pháp

Khi bạn nhập một giải pháp chứa cột Ngày có hành vi Người dùng cục bộ, bạn có thể thay đổi hành vi thành Chỉ ngày hoặc Không phụ thuộc vào múi giờ.

Lưu ý

Bạn chỉ có thể thay đổi hành vi của cột Chỉ ngày hoặc Ngày và giờ được quản lý hiện có nếu bạn là nhà xuất bản. Để thực hiện thay đổi đối với các trường này, phải thực hiện nâng cấp cho giải pháp đã thêm Chỉ ngày hoặc Ngày và giờ cột. Thêm thông tin: Nâng cấp hoặc cập nhật giải pháp

Ngăn chặn việc thay đổi hành vi

Nếu bạn đang phân phối cột ngày tùy chỉnh trong giải pháp được quản lý, hãy ngăn những người sử dụng giải pháp của bạn thay đổi hành vi bằng cách đặt thuộc tính CanChangeDateTimeBehavior được quản lý thành Sai. Thông tin khác: Đặt thuộc tính được quản lý cho cột

Toán tử truy vấn ngày và giờ không được hỗ trợ cho hành vi Chỉ ngày

Các toán tử truy vấn liên quan đến ngày và thời gian sau đây không hợp lệ đối với hành vi chỉ ngày . Lỗi ngoại trừ toán tử không hợp lệ được bỏ qua khi một trong số những toán tử sau đây được sử dụng trong truy vấn.

  • Muộn hơn X Phút
  • Quá X giờ
  • X giờ qua
  • X giờ tới

Xem thêm

Khắc phục sự cố về ngày và giờ trong ứng dụng dựa trên mô hình
Tạo và chỉnh sửa cột
Xác định các cột được tính toán để tự động tính toán thủ công
Thuộc tính được quản lý theo cột
Thuộc tính được quản lý
Blog: Làm việc với các múi giờ trong Dataverse
Định cấu hình hành vi và định dạng của cột ngày và giờ bằng mã

Lưu ý

Bạn có thể cho chúng tôi biết bạn thích dùng ngôn ngữ nào cho tài liệu không? Làm một cuộc khảo sát ngắn. (xin lưu ý, khảo sát này bằng tiếng Anh)

Cuộc khảo sát sẽ mất khoảng bảy phút. Không có dữ liệu cá nhân nào được thu thập (điều khoản về quyền riêng tư).