"yyyymmdd" biçiminde bir simpleDateFormat kullanarak tarihleri doğrulamak ve ayrıştırmak istiyorum Bu ayrıca 10 yıl (Julius Ceasar öldükten 54 yıl sonra) ayrıştırılan 100624 izin verir. Tarihler de 1970 gibi bir şey olacak, bu yüzden SimpleDateFornat ("yymmdd") ile yerleşmek istemiyorum.java's simpledateformat içinde 4 haneli yıl zorlama
SimpleDateFormat kullanarak dört basamaklı bir yıl biçimini zorlamanın bir yolu var mı? Bir regexp testinin önünü yapmak için yakınım ama belki (Simple) DateFormat() 'ı kullanmak için akıllı bir yol var mı?
Kodu istediğimiz gibi, işler daha da karmaşıklaşıyor ve araştırmamın yarısı. Kullanılan Biçim, başlamak için yyyy-MM-dd'ydi (yanlış javadoc'a sahip olan bir değişkenden geliyordu). Ancak yyyyMMdd'nin altında bir cevapta belirtildiği gibi dört yıllık bir rakamı zorlar. Yani benim sorum "yyyy-MM-dd" biçimi için dört basamaklı bir yıl zorlamak için nasıl değiştirilir. Ve neden "yyyyMMdd" farklı davranıyor? için (ve sonra yıl bazı sona erme tarihi, büyükse kontrol edin: (M ay belirtmek için kullanılır harf, aksi you're parsing minutes! notu) yazdırır
public void testMaturity() {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
System.out.println(" " + sdf.format(sdf.parse("40-12-14")));
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
sdf.setLenient(false);
System.out.println(" " + sdf2.format(sdf2.parse("401214")));
fail();
} catch (ParseException pe) {
assertTrue(true);
}
0040-12-14
sonra yıl 10 0010 olacaktır.Bununla ilgili herhangi bir sorun görmüyorum, ilk gün (01) veya ilk ay için 1'e girmelerine izin vermeyin, bu yüzden yıllarca izin verin. – Goibniu