2010-10-24 26 views
6

Có ai biết một cách trong tệp ICS để chỉ định rằng tất cả thời gian được viết theo giờ địa phương tại địa điểm không? Tôi nghĩ rằng để lại 'Z' ra khỏi cuối thời gian, và sử dụng TZID = "America/Denver" (ví dụ) trong DTSTART và DTEND dòng thực hiện điều này, nhưng MS Outlook giả định rằng tất cả các lần trong thời gian tiêu chuẩn của vị trí. Các sự kiện của tôi đều tính đến thời gian tiết kiệm ánh sáng ban ngày.MS Outlook diễn giải không chính xác các tệp ICS theo giờ địa phương: quá thời gian tiết kiệm ánh sáng ban ngày

Tôi có phải viết lại ứng dụng để có thời gian ở dạng UTC không?

Tôi có phải bao gồm một khối ngay từ đầu để xác định múi giờ không? Điều này rất khó vì tôi muốn hỗ trợ mọi múi giờ trong cơ sở dữ liệu Olson.

Nhưng hiện tại MS Outlook đẩy mọi cuộc hẹn trong thời gian tiết kiệm ánh sáng ban ngày về phía trước một giờ, điều đó là sai.

Cảm ơn trước vì đã được trợ giúp.

+0

Tôi cũng muốn nghe câu trả lời. Tôi hình có hai tùy chọn cho điều này: 1) Cấu hình thời gian bắt đầu độc lập múi giờ trong chính tệp, nếu có thể 2) Kiểm tra phía máy chủ múi giờ của người dùng và phục vụ tệp .ics cụ thể trong thời gian chạy. –

Trả lời

3

Tôi đã có một vấn đề rất giống với điều này, và tôi đã làm rất nhiều nghiên cứu nhưng giải pháp vẫn không phải là tốt nhất. Tôi không chắc chắn lý do tại sao Outlook không xử lý thời gian địa phương chính xác, nó làm cho lịch trình hẹn giờ địa phương cho các múi giờ khác là một rắc rối lớn. Các standard rõ ràng chỉ ra rằng nếu không có múi giờ được chỉ định, và UTC 'Z' nhân vật không được sử dụng, sau đó thời gian nên được như nhau không có vấn đề gì múi giờ người nhận được in Tuy nhiên, Outlook không tuân theo điều này và thay đổi thời gian tùy thuộc vào thời gian khách hàng gửi & nhận thời gian của khách hàng.

Trong trường hợp của tôi, tôi có một trang web đang chạy cho phép một số người dùng nhất định lên lịch cho người dùng khác cho các cuộc hẹn. Những người dùng này có thể được đặt ở nhiều múi giờ khác nhau. May mắn cho tôi, trang web được lưu trữ cụ thể chỉ trong một múi giờ. Vì vậy, giải pháp của tôi là viết một câu lệnh chuyển đổi C# đơn giản để bù đắp thời gian dựa trên nơi người dùng nhận được liên quan đến vị trí của máy chủ. Tôi không chỉ định múi giờ trong tệp .ics và I không đánh dấu thời gian là UTC qua ký tự 'Z'.

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