Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تنسيق التاريخ

جزء من قسم 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);
challenge icon

التحدي

سهل

قم بإنشاء طريقة تسمى formatDate تأخذ ثلاث وسائط:

  1. سلسلة نصية (dateStr) بتنسيق "yyyy-MM-dd"
  2. سلسلة نصية (inputPattern) تمثل نمط تاريخ الإدخال
  3. سلسلة نصية (outputPattern) تمثل نمط الإخراج المطلوب

يجب أن تقوم الطريقة بما يلي:

  1. تحليل تاريخ الإدخال باستخدام نمط الإدخال
  2. تنسيقه باستخدام نمط الإخراج
  3. التعامل مع هذه الأنماط:
    • "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));
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow