Vấn đề về use_tz
USE_TZ = True
TIME_ZONE = 'Asia/Bangkok' // Mặc định là UTC
USE_I18N = True
Với USE_TZ = TRUE
Việc đọc và ghi dữ liệu ko ảnh hưởng nếu trường dữ liệu của bạn có các tham số mà django cung cấp. Django tự detect các tham số như “auto_add” và “auto_add_now” các tham số này thường ở định dạng ngày giờ là UTC việc đọc hoặc ghi dữ liệu sẽ không bị ảnh hưởng đến giờ ở VN do TIME_ZONE = 'Asia/Bangkok'
Đối với các trường dữ liệu ngày giờ khác (không có “auto_add” và “auto_add_now”) sẽ không sử dùng cùng logic này
READ_DATA = TIMEZONE = 'Asia/Bangkok' WRITE_DATA = TIMEZONE = UTC
Với USE_TZ = False
Việc đọc và ghi dữ liệu sẽ tự do và do giờ của bạn quyết dịnh tham số, lưu ý rằng 1 số phương thức của django sẽ bị ảnh hưởng nếu bạn chỉnh qua định dạng này
Trường hợp dễ thấy là bến sẽ ko có tzinfo; nó hoạt động như cách mà bạn tạo các trường dữ liệu ko có “auto_add” ở trên
READ_DATA = YOUR CURRENT TIME OR YOUR TIME IN PUT WRITE_DATA = YOUR CURRENT TIME OR YOUR TIME IN PUT
Vấn đề về time_zone aware django server;
DJANGO_CELERY_BEAT_TZ_AWARE = True;
USE_TZ = True
TIME_ZONE = 'Asia/Bangkok'
Khi bật 2 tham số trên sang True thời gian sẽ truy vấn dựa trên localtime nếu ở dưới local ko có các múi giờ đã defind ở trên như ‘TIME_ZONE = 'Asia/Bangkok’ thì django admin sẽ xuất hiện tình trạng lỗi “Datetime data value”. Ở các môi trường ứng dụng khác thì các gói múi giờ đã được cài sẵn nên sẽ không xảy ra tình trạng lỗi này;
Hầu hết các hệ điều hành đều truy vấn import gói múi giờ như nhau (Linux | MacOS | Windows)
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql