Thẻ

, , , , , ,

[Platform used: WP 8.1]

Bài toán 1: Unix time

Unix Time hay còn gọi là Epoch Time (hoặc POSIX Time) chỉ đơn giản là một loại format để hiện thị một mốc thời gian, hay có thể nói là thời điểm.
Nó được tính bằng số giây chênh lệch tính từ thời điểm 00:00:00 01/01/1970 (UTC).
Tại sao ta lại quan tâm đến unix time, do nó có dạng ngắn gọn (chỉ là 1 số tự nhiên), nên nó thường được dùng để lưu trữ thời gian trong các hệ csdl!
Đây cũng là gốc thời gian chính mà thế giới đang sử dụng, trước là GMT!

//Time -> UnixTime
var unixTime = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
//UnixTime -> Time
var time = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(unixTime);

Bài toán 2: Xử lý Time Zone

Rất rõ ràng, giờ ta có một mốc thời gian này, nhưng lại ở một time zone khác, cần chuyển đổi nó sang time zone hiện tại! Liên quan tới time zone tức là liên quan đế vị trí, do đó ta sẽ sử dụng Google Map API để xử lý vấn đề này!

Bước 1: Xác định timezone hiện tại!
Cái này được thực hiện khá đơn giản trong .NET

TimeZoneInfo localZone = TimeZoneInfo.Local;

Bước 2: Chuyển time về timezone của mình.

DateTime localTime = utcTime.Add(localZone.BaseUtcOffset);

Như vậy là ta đã chuyển được thời gian UTC về thời gian mặc định của mình!

Bonus: Đặt nhắc nhở theo thời gian (Reminder)

[Windows Phone]


Tham khảo: http://goo.gl/5ySMfn

Advertisements