Nasıl takvim Dilimleri Java kullanarak işlemek için?
Benim uygulama geldiği zaman Damgası değeri var. Kullanıcı herhangi bir yerel saat Dilimi olabilir.
Bu tarih, her zaman GMT verilen varsayan bir Java Eklentisi için kullanıldığından (GMT) söylemek (EST) kullanıcı parametre dönüştürmek için bir ihtiyaç var. Asıl önemlisi: kullanıcı TZ bihaber. WS göndermek istediği oluşturulma tarihi giriyor, ben buna ne gerek var:
Kullanıcı girer:5/1/2008 6:12 PM (EST)
WS için parametresi olmalıdır: 5/1/2008 6:12 PM (GMT)
Biliyorum Zaman her zaman olması gerekiyordu GMT varsayılan olarak, ama gönderirken, parametre, olsa bile ben yarattım takvimimden TS (ki olması gerekiyordu GMT), saati hep kapalı sürece kullanıcı GMT. Neyi kaçırıyorum?
Timestamp issuedDate = (Timestamp) getACPValue(inputs_, "issuedDate");
Calendar issueDate = convertTimestampToJavaCalendar(issuedDate);
...
private static java.util.Calendar convertTimestampToJavaCalendar(Timestamp ts_) {
java.util.Calendar cal = java.util.Calendar.getInstance(
GMT_TIMEZONE, EN_US_LOCALE);
cal.setTimeInMillis(ts_.getTime());
return cal;
}
Bir önceki Kod ile bu sonuç (kolay okuma için Kısa Biçimi) olarak alıyorum
[Mayıs 1, 2008 11:12 PM]
CEVAP
public static Calendar convertToGmt(Calendar cal) {
Date date = cal.getTime();
TimeZone tz = cal.getTimeZone();
log.debug("input calendar has date [" date "]");
//Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
long msFromEpochGmt = date.getTime();
//gives you the current offset in ms from GMT at the current date
int offsetFromUTC = tz.getOffset(msFromEpochGmt);
log.debug("offset is " offsetFromUTC);
//create a new calendar in GMT timezone, set to this date and add the offset
Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
gmtCal.setTime(date);
gmtCal.add(Calendar.MILLISECOND, offsetFromUTC);
log.debug("Created GMT cal with date [" gmtCal.getTime() "]");
return gmtCal;
}
Burada ise geçerli zaman geçersem çıktı ("12:09:05" Calendar.getInstance()
) SUNACAK:
Hata AYIKLAMA - giriş takvimi tarih vardır [23 12:09:05 / g grubu / 2008 Per Eki]< / ^ br . Hata AYIKLAMA - mahsup -14400000< / ^ br . Hata AYIKLAMA - tarih ile Oluşturulan GMT cal [Prş Eki 23 08:09:05 / g grubu / 2008]
GMT 8:09:05 / g grubu / 12:09:05.
Kafa karıştırıcı kısmının burada olduğunu Calendar.getTime()
getiri Date
içinde bulunduğunuz zaman dilimi de yoktur yöntemini değiştirmek için saat takvim ve alttaki tarih yuvarlandı da. Web hizmeti alır ne bağlı olarak, sadece döneminde, milisaniye cinsinden WS anlaşma olabilir.
Nasıl bir tarih Java takvim kullanarak...
Java kullanarak.net.Ateş ve işlemek iç...
Nasıl düğmeye tıklama Parçaları içinde...
Nasıl indirmek ve internetten bir dosy...
Nasıl dize Java kullanarak boşluk yine...