2016-03-23 26 views
0

Bir NSDate alıyorum ve dateString içine çeviriyorum. Ama sonra ...Tarih dize çalışır, Tarih dize çalışmıyor

Aynı dateString'u almaya çalıştığımda ve NSDate'a geri döndürdüğüm tarihler doğru değil.

dateString için

NSDate ...

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "MMM d, yyyy H:mm a" 
let dateString = dateFormatter.stringFromDate(timeDate as! NSDate) 
print("Date: \(dateString)") 

Konsolu:

Date: Mar 22, 2016 22:30 PM 
Date: Mar 23, 2016 1:00 AM 
Date: Mar 23, 2016 9:00 AM 

dateString ... plainDate için

let reverseDateFormatter = NSDateFormatter() 
reverseDateFormatter.dateFormat = "MMM d, yyyy H:mm a" 
let plainDate = reverseDateFormatter.dateFromString(dateString) 
print("Date Reverse: \(plainDate)") 

Konsolu: senin senin zaman dilimi bilgileri kaybetmeden, bir dizeye tarihi dönüştürme ve

Date Reverse: Optional(2016-03-22 17:30:00 +0000) 
Date Reverse: Optional(2016-03-23 05:00:00 +0000) 
Date Reverse: Optional(2016-03-23 05:00:00 +0000) 
+1

22:30 karar vermeniz gerekir –

+0

hiçbir mantıklı olmadığı 24 "H: mm" veya 12 saat "h: mm a" biçimi –

+0

@ LeoDabus 22:30 pm arasında sadece "pm" bölümünden hiçbir anlam ifade etmiyor mu? – victorpulak

cevap

2

sonra onun geri birlikte parçaları birleştirmeye mümkün değildir.

Tarihin kendisini bir NSDate olarak depolayamamanızın bir nedeni var mı ve sonra bir dizeden tarihi yeniden oluşturmak yerine bunu kullanabilirsiniz.

Eğer dize tam tarihe geri dönüştürmek için gerekiyorsa, zaman dilimini de

+0

Yani işlem şu: 24 saat biçimindeki CloudKit'ten tarih + saati çekiliyor. Ardından bu tarihi iPhone için metin olarak görüntülemek üzere bir dizeye dönüştürüyorum (kullanıcıların telefonlarını kullanarak saat dilimini kullanarak CloudKit'in bitiminde tarih + saati kodlamadım). Sonra dize tarihini Watch'a iletmem gerekiyor, bu yüzden bir dize olarak görüntülemek ve zaman çizelgesi girişlerini sipariş etmek için kullanabilirim. – victorpulak

+0

Sorunla karşılaşmaya başladığımda, İzleme tarafındaydı. Sorunu izliyormuşum gibi, ipucunu NSDate'e dönüştürdüğümde de problemin meydana gelip gelmediğini görmek için hepsini iPhone'da denememe izin verdim. – victorpulak

+0

Umarım, yardımcı olması ve daha net olmasını sağlar, neyi değiştirdiğimi veya başka bir şey için önerileriniz varsa, ne düşündüğünüzü bana bildirin. Teşekkür ederim! – victorpulak

1

stringFromDate saklamak için formatını ayarlamak gerekir isteğe bağlı olmayan bir dize döndürür, ancak dateFromString isteğe bağlı tarih döndürür . Şartlı dışarı yazdırmadan önce sonuçları paketini:

izin sonuç = reverseDateFormatter.dateFromString (dateString) { baskı (sonuç) }

+0

Müthiş iyi bilgi! Ana sorgumla ilgili herhangi bir fikriniz varsa, sadece tarihlerin farklı olduğu tarihler olsun. – victorpulak

+0

Bolnad bunu zaten yanıtladı - NSDate'i String'e değil Watch'a aktar. – Darko

+0

Ps: veya saat dilimi bilgilerini de geç – Darko