SimpleDateFormat sınıfında bulunan tarih biçimleri hakkında bana bilgi verebilir misiniz?
API'den geçtim ancak tatmin edici bir cevap bulamadım, herhangi bir yardım çok takdir ediliyor.
SimpleDateFormat sınıfında bulunan tarih biçimleri hakkında bana bilgi verebilir misiniz?
API'den geçtim ancak tatmin edici bir cevap bulamadım, herhangi bir yardım çok takdir ediliyor.
Yanıtlar:
Tarih ve saat biçimleri aşağıda iyi açıklanmıştır
SimpleDateFormat (Java Platform SE 7) - Tarih ve Saat Kalıpları
Yapabileceğiniz n
format sayısı olabilir. ör. dd/MM/yyyy
veya YYYY-'W'ww-u
gerekli kalıbı elde etmek için harfleri karıştırıp eşleştirebilirsiniz. Desen harfleri aşağıdaki gibidir.
G
- Çağ belirleyicisi (AD)y
- Yıl (1996; 96)Y
- Hafta Yılı (2009; 09)M
- Yıldaki ay (Temmuz; Temmuz; 07)w
- Yıldaki hafta (27)W
- Aydaki hafta (2)D
- Yıldaki gün (189)d
- Aydaki gün (10)F
- Ay içinde haftanın günü (2)E
- Haftalık gün adı (Salı; Sal)u
- Haftanın gün sayısı (1 = Pazartesi, ..., 7 = Pazar)a
- AM / PM işaretçisiH
- Gün içindeki saat (0-23)k
- Gün içindeki saat (1-24)K
- am / pm cinsinden saat (0-11)h
- am / pm cinsinden saat (1-12)m
- Saat cinsinden dakika (30)s
- Dakikada saniye (55)S
- Milisaniye (978)z
- Genel saat dilimi (Pasifik Standart Saati; PST; GMT-08: 00)Z
- RFC 822 saat dilimi (-0800)X
- ISO 8601 saat dilimi (-08; -0800; -08: 00)Ayrıştırmak için:
2000-01-23T04: 56: 07.000 + 0000
Kullanım:
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
SimpleDateFormat
yapıcıda yerel ayarlamaya izin verin. SimpleDateFormat formatter = new SimpleDateFormat(pattern, locale);
Http://www3.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html adresinden aldığım bazı örnek kodları atayım. Sonra anlayana kadar farklı seçeneklerle oynayabilirsiniz.
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date now = new Date();
//This is just Date's toString method and doesn't involve SimpleDateFormat
System.out.println("toString(): " + now); // dow mon dd hh:mm:ss zzz yyyy
//Shows "Mon Oct 08 08:17:06 EDT 2012"
SimpleDateFormat dateFormatter = new SimpleDateFormat("E, y-M-d 'at' h:m:s a z");
System.out.println("Format 1: " + dateFormatter.format(now));
// Shows "Mon, 2012-10-8 at 8:17:6 AM EDT"
dateFormatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Format 2: " + dateFormatter.format(now));
// Shows "Mon 2012.10.08 at 08:17:06 AM EDT"
dateFormatter = new SimpleDateFormat("EEEE, MMMM d, yyyy");
System.out.println("Format 3: " + dateFormatter.format(now));
// Shows "Monday, October 8, 2012"
// SimpleDateFormat can be used to control the date/time display format:
// E (day of week): 3E or fewer (in text xxx), >3E (in full text)
// M (month): M (in number), MM (in number with leading zero)
// 3M: (in text xxx), >3M: (in full text full)
// h (hour): h, hh (with leading zero)
// m (minute)
// s (second)
// a (AM/PM)
// H (hour in 0 to 23)
// z (time zone)
// (there may be more listed under the API - I didn't check)
}
}
İyi şanslar!
GÜNCELLEME
Diğer Soruların modası geçmiştir. SimpleDateFormat
Yıllar önce modern java.time sınıflarının yerini almış gibi korkunç miras sınıfları.
Kendi özel biçimlendirme kalıplarınızı tanımlamak için, içindeki kodlar, içindeki kodlara DateTimeFormatter
benzer, ancak tam olarak aynı değildir SimpleDateFormat
. Belgeleri incelediğinizden emin olun. Ve birçok örnek için Stack Overflow'da arama yapın.
DateTimeFormatter f =
DateTimeFormatter.ofPattern(
"dd MMM uuuu" ,
Locale.ITALY
)
;
ISO 8601 tarih-saat değerleri birçok türleri için standart tanımlar biçimleri. Bu formatlar veri alışverişi için tasarlanmıştır, makine tarafından kolayca ayrıştırılır ve kültürler arasında insanlar tarafından kolayca okunur.
Java.time dizeleri ayrıştırma / oluştururken sınıflar varsayılan olarak ISO 8601 biçimler kullanır. toString
& Methodlarını aramanız yeterlidir parse
. Biçimlendirme deseni belirlemenize gerek yok.
Instant.now().toString()
2018-11-05T18: 19: 33.017554Z
UTC'deki bir değer Z
için, sondaki UTC anlamına gelir ve "Zulu" olarak okunur.
Bir biçimlendirme kalıbı belirtmek yerine, java.time'ın sizin için otomatik olarak yerelleştirilmesine izin verebilirsiniz . DateTimeFormatter.ofLocalized…
Yöntemleri kullanın .
Belirli bir bölgedeki (bir saat dilimi) insanlar tarafından kullanılan duvar saati saatiyle güncel anı alın.
ZoneId z = ZoneId.of( "Africa/Tunis" );
ZonedDateTime zdt = ZonedDateTime.now( z );
Saat diliminin adını köşeli parantez içinde eklemek için akıllıca genişletilmiş standart ISO 8601 biçiminde metin oluşturun.
zdt.toString (): 2018-11-05T19: 20: 23.765293 + 01: 00 [Afrika / Tunus]
Otomatik olarak yerelleştirilmiş metin oluşturun.
Locale locale = Locale.CANADA_FRENCH;
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( locale );
String output = zdt.format( f );
çıktı: lundi 5 Kasım 2018 19:20:23 heure normale d'Europe centrale
Genellikle, sabit kodlu biçimlendirme desenleriyle uğraşmak yerine otomatik yerelleştirme için daha iyi bir uygulamadır.
Java.time çerçevesi daha sonra Java 8 ve yerleşiktir. Bu sınıflar zahmetli eski yerini mirası gibi tarih-saat sınıfları java.util.Date
, Calendar
& SimpleDateFormat
.
Daha fazla bilgi edinmek için Oracle Eğitimine bakın . Ve birçok örnek ve açıklama için Stack Overflow'da arama yapın. Spesifikasyon JSR 310'dur .
Şu anda bakım modunda olan Joda-Time projesi, java.time sınıflarına geçişi tavsiye ediyor .
Sen değiştirebilir java.time sizin veritabanı ile doğrudan nesneleri. JDBC 4.2 veya üstü ile uyumlu bir JDBC sürücüsü kullanın . Dizelere gerek yok, derslere gerek yok . Hibernate 5 ve JPA 2.2 java.time'ı destekler .java.sql.*
Java.time derslerini nereden edinebilirim?
biçimleri buradan kontrol edin http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
ana
System.out.println("date : " + new classname().getMyDate("2014-01-09 14:06", "dd-MMM-yyyy E hh:mm a z", "yyyy-MM-dd HH:mm"));
yöntem
public String getMyDate(String myDate, String returnFormat, String myFormat)
{
DateFormat dateFormat = new SimpleDateFormat(returnFormat);
Date date=null;
String returnValue="";
try {
date = new SimpleDateFormat(myFormat, Locale.ENGLISH).parse(myDate);
returnValue = dateFormat.format(date);
} catch (ParseException e) {
returnValue= myDate;
System.out.println("failed");
e.printStackTrace();
}
return returnValue;
}