2013-07-18 35 views
6

Đầu ra nhận biết múi giờ của Django rõ ràng là only applies when rendering a template. Có cách nào để nhận được cùng một chuyển đổi tự động đó sang múi giờ hiện đang hoạt động cho các phản hồi trả lại CSV hoặc JSON không?Hỗ trợ múi giờ Django Bên ngoài các mẫu

+0

Bạn đang tìm kiếm một môi trường django? Hoặc một số mã cụ thể python? Có lẽ thử dùng pytz? –

+0

Không, tôi đang tìm cách có cùng hành vi chuyển đổi tự động mà bạn thấy trong mẫu khi tôi gửi phản hồi CSV hoặc JSON cho người dùng. – Tom

+0

Tôi không tin có bất kỳ chuyển đổi tự động nào bên ngoài các mẫu ... bạn sẽ phải thực hiện thủ công. –

Trả lời

1

Dường như chức năng cơ bản được gọi là chuyển đổi datetimes trong các mẫu là django.utils.timezone.template_localtime(). Ngay bên cạnh nó trong nguồn là một chức năng hữu ích, localtime, trông giống như:

def localtime(value, timezone=None): 
    """ 
    Converts an aware datetime.datetime to local time. 

    Local time is defined by the current time zone, unless another time zone 
    is specified. 
    """ 
    ... 

Vì vậy, có lẽ sau đây sẽ làm việc:

from django.utils.timezone import localtime, get_current_timezone 

... 

print localtime(obj.date_created, user.get_profile().timezone or get_current_timezone()) 
+0

Tốt, tôi sẽ thử một lúc nào đó. Cảm ơn. – Tom

Các vấn đề liên quan