Android uygulamasında Facebook gönderilerini Facebook SDK'yı kullanarak görüntülüyorum. Ben formatında her bir yayın için CREATED_TIME vardır:created_time facebook post'unu kullanıcının saat dilimine nasıl dönüştürebilirim?
2012-01-04T12:28:52+0000
ben şöyle bir Java Date nesnesine bu ayrıştırmak başardı:
public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss+SSSS";
public static Date parseDate(String str) {
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
try {
Date date = sdf.parse(str);
} catch(ParseException e) {
Log.w(TAG, "Unable to parse date string \"" + str + "\"");
}
return date;
}
Sonra ben açıklayan bir ileti görüntüler çalışılıyor sonrası bu yöntem kullanılarak oluşturulan itibaren geçen zamanı:
public static String timeAgoInWords(Date from) {
Date now = new Date();
long difference = now.getTime() - from.getTime();
long distanceInMin = difference/60000;
if (0 <= distanceInMin && distanceInMin <= 1) {
return "Less than 1 minute ago";
} else if (1 <= distanceInMin && distanceInMin <= 45) {
return distanceInMin + " minutes ago";
} else if (45 <= distanceInMin && distanceInMin <= 89) {
return "About 1 hour";
} else if (90 <= distanceInMin && distanceInMin <= 1439) {
return "About " + (distanceInMin/60) + " hours ago";
} else if (1440 <= distanceInMin && distanceInMin <= 2529) {
return "1 day";
} else if (2530 <= distanceInMin && distanceInMin <= 43199) {
return (distanceInMin/1440) + "days ago";
} else if (43200 <= distanceInMin && distanceInMin <= 86399) {
return "About 1 month ago";
} else if (86400 <= distanceInMin && distanceInMin <= 525599) {
return "About " + (distanceInMin/43200) + " months ago";
} else {
long distanceInYears = distanceInMin/525600;
return "About " + distanceInYears + " years ago";
}
}
sorun yazının create_time 6 saat ileri zamanımın (EST) olmasıdır. Yani timeAgoInWords yöntemi düzgün çalışmıyor. Facebook her zaman UTC/GMT +1 saat içinde gönderilerin oluşturulma süresini kaydeder mi?
Oluşturma süresini dönüştürmek için ne yapabilirim, böylece timeAgoInWords, geçerli kullanıcı saat dilimi için nerede çalışırlarsa çalışırlar, düzgün çalışırlar?
Teşekkürler! Bu benim için yaptı. Sanırım kafam karışmıştı çünkü Facebook'un bana verdiği zaman UTC zamanında olduğundan bile emin değildim. Ama sanırım öyleydi, teşekkürler! – mattgmg1990
Yardım etmesine sevindim. Dürüst olmak gerekirse facebook hakkında hiçbir şey bilmiyorum, ancak herhangi bir global sistemin UTC kullanması mantıklı olacaktır. – Squonk
Neden sadece tarih desenine saat dilimi eklemezsiniz ve yerel saat diliminize dönüşür? Örneğin. "Yyyy-AA-gg'T'SS: dd: ssZZZZZ" – Andrew