Kullanarak bir SQL SELECT sorgusu için bir dize olarak ayarlamak için 'sabit' bir saat (24 saat biçiminde gece yarısı, yani 00:00:00) oluşturmaya çalışıyorum aşağıdaki ...GregorianCalendar/Takvim ve HOUR alanı tuhaflığını ayarlama
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
GregorianCalendar todayDate = new GregorianCalendar();
Log.d(TAG, "todayDate: " + todayDate.getTime().toString());
Log.d(TAG, "formatted todayDate: " + sdf.format(todayDate.getTime()));
todayDate.clear(Calendar.HOUR);
todayDate.clear(Calendar.MINUTE);
todayDate.clear(Calendar.SECOND);
todayDate.set(Calendar.HOUR, 0);
todayDate.set(Calendar.MINUTE, 0);
todayDate.set(Calendar.SECOND, 0);
Log.d(TAG, "formatted modified todayDate: " + sdf.format(todayDate.getTime()));
Bu sorun geçerlidir UNLESS şu anki saattir PM. Geçerli saat gece yarısı ve öğlen arasında olduğunda bunu yaparsanız Örneğin,
todayDate: Fri Jan 28 23:34:34 GMT 2011
formatted todayDate: 2011-01-28 23:34:34
formatted modified todayDate: 2011-01-28 12:00:00 <- THE hour is 12 not 00
(yani 00:00:00 -> 11:59:59) daha sonra formatlanmış dizede benim saat doğru olduğunu 00'a ayarlıyorum. Eğer öğleden sonra ve gece yarısından önce herhangi bir zamanda yaparsam saat 12'ye kadar 00 alırım.
Herkes bunu açıklayabilir ve bir düzeltme (veya bir şeyler yapmanın alternatif bir yolu) bulmama yardımcı olabilir mi? ?
Aaargh! Bu kadar basit olduğuna inanamıyorum. Teşekkür ederim. – Squonk
Endişelenme .. :) – armandino