Có cách nào dễ dàng để NSDate
kết hợp ngày / giờ UTC hiện tại không?
Không có cái gọi là
—
Nick Forge
NSDate
được đặt thành UTC, nó không có múi giờ liên kết với nó.
@MurraySagal Bạn không chính xác -
—
Nick Forge
NSDate
đại diện cho một thời điểm tức thì (tên NSDate
là một cái gì đó nhầm lẫn). Khi mô tả một thời điểm chẳng hạn như "khoảnh khắc đầu tiên của ngày 1 tháng 1 năm 2001", bạn cần một múi giờ để tìm ra thời điểm chính xác mà bạn đang nói đến, nhưng khi NSDate
nó được tạo, không có múi giờ nào được liên kết với nó.
@NickForge Một NSDate được tạo là "thời điểm đầu tiên của ngày 1 tháng 1 năm 2001, GMT", một thời gian cụ thể trong một múi giờ cụ thể và thực tế đó là bất biến và cực kỳ quan trọng đối với lý do tại sao ngày tháng hoạt động như chúng. Nếu chúng tôi ở các múi giờ khác nhau và chúng tôi ghi lại điều này vào cùng một thời điểm,
—
Murray Sagal
NSLog(@"since1970= %f", [[NSDate date] timeIntervalSince1970]);
kết quả là giống nhau. Tại sao? Bởi vì nó liên quan đến một thời điểm cụ thể trong một múi giờ cụ thể (GMT), bất kể người dùng ở đâu. Thực tế là nó liên quan đến GMT không biến mất khi nó được tạo ra. Nếu không có neo này, ngày tháng sẽ là tùy ý.
@MurraySagal Cả hai bạn đều đúng theo những cách khác nhau, nhưng Nick đúng hơn khi nói "Không có cái gọi là
—
devos1
NSDate
được đặt thành UTC", bởi vì bạn không thể đặt múi giờ của một NSDate
và bạn không chính xác khi nói điều đó nó "có một múi giờ". Đúng là nó được xác định liên quan đến một múi giờ cụ thể, nhưng nói rằng nó "có" một múi giờ ngụ ý rằng múi giờ là thuộc tính của NSDate
và điều đó không đúng.
[NSDate date]
làm việc? Tôi không chắc đó có phải là UTC hay không.