2010-09-23 38 views
5

Tôi gặp một ngày/giờ giá trị như 2010-07-26T11: 37: 52Z, bây giờ tôi muốn ngày trong 26-Jul-2010 (dd-mon-yyyy) định dạng , Tôi phải làm nó như thế nào?Ngày định dạng chuyển đổi sử dụng Java

+0

Chúng tôi có thể có một số mã không? – fredley

+1

Cách hiện đại: 'OffsetDateTime.parse (" 2010-07-26T11: 37: 52Z "). Định dạng (DateTimeFormatter.ofPattern (" dd-MMM-uuuu "))'. –

Trả lời

24

Xây dựng hai đối tượng SimpleDateFormat. Đầu tiên bạn phân tích cú pháp() giá trị từ thành đối tượng Ngày, thứ hai bạn sử dụng để biến đối tượng Ngày trở lại thành chuỗi, ví dụ:

try { 
    DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
    DateFormat df2 = new SimpleDateFormat("dd-MMM-yyyy"); 
    return df2.format(df1.parse(input)); 
} 
catch (ParseException e) { 
    return null; 
} 

Phân tích cú pháp có thể ném một ParseException để bạn cần nắm bắt và xử lý.

+0

hoạt động của nó một cách hoàn hảo .... thật lòng biết ơn bạn vì câu trả lời nhanh của bạn, làm cho cuộc sống của tôi –

+0

thực sự không chính xác, mặc dù nó có thể cung cấp cho bạn kết quả mong muốn. 'Z' có nghĩa là bù trừ số không, nhưng bạn phân tích cú pháp ngày giờ thành múi giờ của JVM, cho thời gian không chính xác. Nếu bạn không sử dụng thời gian trong ngày, bạn sẽ trong nhiều trường hợp có được sản lượng mong muốn, tùy thuộc vào yêu cầu chính xác của bạn. –

Các vấn đề liên quan