Tôi có một biến LocalDate được gọi là ngày, khi tôi in nó hiển thị 1988-05-05 Tôi cần chuyển đổi nó để được in là 05.May 1988. Làm thế nào để làm điều này?
Tôi có một biến LocalDate được gọi là ngày, khi tôi in nó hiển thị 1988-05-05 Tôi cần chuyển đổi nó để được in là 05.May 1988. Làm thế nào để làm điều này?
Câu trả lời:
SimpleDateFormat sẽ không hoạt động nếu anh ấy bắt đầu với LocalDate mới trong Java 8. Từ những gì tôi có thể thấy, bạn sẽ phải sử dụng DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ thời gian / định dạng / DateTimeFormatter.html .
LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);
Điều đó sẽ in ngày 05 tháng 5 năm 1988. Để có được khoảng thời gian sau ngày và trước tháng, bạn có thể phải sử dụng "dd'.LLLL yyyy"
Với sự giúp đỡ của các bài viết của Lập trình viên, tôi đã nghĩ ra điều này. Nhu cầu của tôi hơi khác nhau. Tôi cần lấy một chuỗi và trả về nó dưới dạng đối tượng LocalDate. Tôi đã được trao mã đang sử dụng Lịch cũ và SimpleDateFormat. Tôi muốn làm cho nó một chút hiện tại. Đây là những gì tôi đã đưa ra.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
void ExampleFormatDate() {
LocalDate formattedDate = null; //Declare LocalDate variable to receive the formatted date.
DateTimeFormatter dateTimeFormatter; //Declare date formatter
String rawDate = "2000-01-01"; //Test string that holds a date to format and parse.
dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE;
//formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.
//First, the rawDate string is formatted according to DateTimeFormatter. Second, that formatted string is parsed into
//the LocalDate formattedDate object.
formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));
}
Hy vọng rằng điều này sẽ giúp được ai đó, nếu bất cứ ai thấy cách tốt hơn để thực hiện nhiệm vụ này, vui lòng thêm đầu vào của bạn.
LocalDate.parse(rawDate)!String.formatđang được sử dụng ở dạng sai hoàn toàn ở đây, thực sự chỉ trả về chuỗi đầu tiên; cái DateTimeFormatternày không được sử dụng chút nào; parselà một staticphương pháp của LocalDate; formattedDatelà không một ngày định dạng, thậm chí không một String(theo yêu cầu trong câu hỏi)
Có một cách tích hợp để định dạng LocalDate cho joda lib
import org.joda.time.LocalDate;
LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);
Trong trường hợp bạn chưa có nó - hãy thêm cái này vào build.gradle:
implementation 'joda-time:joda-time:2.9.5'
Chúc mừng mã hóa! :)
Một cách khá hay để làm điều này là sử dụng SimpleDateFormat Tôi sẽ chỉ cho bạn cách:
SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);
Tôi thấy rằng bạn có ngày trong một biến:
sdf.format(variable_name);
Chúc mừng.
LocalDatethể hiện theo một định dạng cụ thể. Làm thế nào có thể SimpleDateFormatgiúp anh ta ở đây?
Strings.