2012-05-11 12 views
14

Şimdiki zaman ve tarihi "yyyy-MM-dd'T'HH:mm:ss.SSSZ" bu biçimde saklayan bir program yapıyorum. ve veritabanında bir dizgi olarak saklıyorum. Verileri topladığım zaman, gün, yıl, dakika, saniye gibi bireysel değerlere ihtiyacım var. Bunu nasıl yapabilirim? Gün, yıl, saat, dakika nasıl alınır? Tarih biçimi olarak "yyyy-MM-dd'T'HH: mm: ss.SSSZ"?

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
String now = formatter.format(new Date()); 

, teşekkür ederiz

+0

Sorun nedir, doğru sınıfı kullanıyorsunuz –

+0

Veriyi, veri tabanı veya java kodu aracılığıyla nasıl topluyorsunuz? – pawelzieba

+0

Sorunuz belirsiz… kullanıcı tarafından ayrı ayrı girilmesini mi istiyorsun yoksa veritabanından çıkmasını mı istiyorsunuz? – Barak

cevap

12

sana "timeInMillis" olarak DB kez depolamak öneriyorum uyuyor umuyoruz. Benim deneyimlerimde kodu basitleştirir ve zaman değerlerini birbiriyle karşılaştırmanıza izin verir. .

Calendar calendar = Calendar.getInstance(); // current time 
long timeInMillis = calendar.getTimeInMillis(); 
mDb.saveTime (timeInMillis); // adjust this to work with your DB 

almak için bir süre:

long timeInMillis = mDb.getTime(); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis (timeInMillis); 
int milliSeconds = calendar.get(MILLISECOND); 
//etc 
1

getDate() 
getMinutes() 
getHours() 
getSeconds() 
getMonth() 
getTime() 
getTimezoneOffset() 
getYear() 
+0

Bu yöntem, API düzeyi 1'de kullanımdan kaldırıldı. JDK sürüm 1.1'den itibaren, Ex için aşağıdaki kullanılarak değiştirilecek: Calendar.get (Calendar.YEAR) - 1900. –

21

Onun yerine formatının ayrıştırmak kullandığınız bir tarih bireysel parçaları almak için kullanılabilir bu yöntem vardır: o zaman

String dateFromDB = ""; 
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 
Date yourDate = parser.parse(dateFromDB); 

Ve java.util.Date & Takvim API'sini kullanarak istediğiniz alanı okuyabilirsiniz:

Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(yourDate); 
    calendar.get(Calendar.DAY_OF_MONTH); //Day of the month :) 
    calendar.get(Calendar.SECOND); //number of seconds 
//and so on 

ben İhtiyaçlarınızı

+0

hata 'java.text.ParseException gösteriyor: Ayrılmamış tarih: 2012-05-11T18: 25: 55: 250GMT ' – wolverine

+0

formattan hemen sonra ayrıştırmayı deneyin. => Sorunun veritabanından gelip gelmediğini görmek için biçimin çıktısını ayrıştırın. – Estragon

+0

Burada veritabanından tarihi geçmedim, sadece manuel olarak girdim .. – wolverine

1

kullanmayı deneyin:

bir süre saklamak için int saat = Calendar.getInstance() olsun (Calendar.HOUR_OF_DAY); İşte

,

  • Calendar.HOUR_OF_DAY size 24 saat zaman verir.
  • Calendar.HOUR, size 12 saatlik zaman kazandırır.
İlgili konular