تنسيق التاريخ
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 58 من 59.
يسمح لك DateTimeFormatter في Java بتنسيق التواريخ والأوقات بأنماط مختلفة. يمكن استخدامه مع LocalDate و LocalTime و LocalDateTime.
أنشئ منسقًا بنمط محدد:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");قم بتنسيق تاريخ باستخدام المنسق (formatter):
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);بعد تنفيذ الكود أعلاه، يحتوي formatted على:
2024-03-15
تحليل سلسلة نصية إلى تاريخ:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);التحدي
سهلقم بإنشاء طريقة تسمى formatDate تأخذ ثلاث وسائط:
- سلسلة نصية (
dateStr) بتنسيق "yyyy-MM-dd" - سلسلة نصية (
inputPattern) تمثل نمط تاريخ الإدخال - سلسلة نصية (
outputPattern) تمثل نمط الإخراج المطلوب
يجب أن تقوم الطريقة بما يلي:
- تحليل تاريخ الإدخال باستخدام نمط الإدخال
- تنسيقه باستخدام نمط الإخراج
- التعامل مع هذه الأنماط:
- "basic": "yyyy-MM-dd"
- "long": "MMMM d, yyyy"
- "short": "MM/dd/yy"
- "custom": سلسلة النمط الفعلية
يجب أن تكون رسائل الإرجاع كما يلي:
- في حالة وجود تاريخ غير صالح: أرجع "Invalid date format"
- في حالة وجود نمط غير صالح: أرجع "Invalid pattern"
- في حالة النجاح: أرجع التاريخ المنسق
ورقة مرجعية
يسمح لك DateTimeFormatter بتنسيق التواريخ والأوقات بأنماط محددة:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");تنسيق تاريخ باستخدام المنسق:
LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);تحليل سلسلة نصية إلى تاريخ:
String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);جرّب بنفسك
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String formatDate(String dateStr, String inputPattern, String outputPattern) {
// اكتب الكود الخاص بك هنا
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
String inputPattern = scanner.nextLine();
String outputPattern = scanner.nextLine();
System.out.println(formatDate(dateStr, inputPattern, outputPattern));
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات4HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمالمسح والنسخملخص - HashSet10التاريخ والوقت
أساسيات LocalDateعمليات LocalTimeاستخدام LocalDateTimePeriod و Durationتنسيق التاريخالتعامل مع المناطق الزمنية2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم