الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع التاريخ والوقت في جافا

بدأه Mahmoud Kelany في 21 أغسطس 2010 · 29 رد · 4,614 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

في هذا الموضوع نقوم بنقاش آلية التعامل مع الوقت والتاريخ في الجافا

نرجو من الجميع مشاركتنا في النقاش والإدلاء بأرائهم ومعلوماتهم حول الموضوع

اذا اردنا ان نقوم بجلب التاريخ بالمره ؟؟

فطبعا هذه الـ Date class

مش هاعرف اجيب منها الـتاريخ

طب هتقولى فيه دوال بتجيب التاريخ لكن دى دوال Deprecated يعنى تعتبر فى تعداد الميته او الملغيه لان فيه االلى احسن منها

الدوال دى زى

 getDay();
getMonth();
getYear();

علشان كدا بنستخدم الـ Calender لانها اعم واشمل فى كل شىء

ممكن تجيبى منها الوقت والتاريخ والوقت العالمى TimeZone

كانها الـ Calender بتاعت النظام

للمزيد عن الـ Calender

http://download.orac...l/Calendar.html

وللمزيد عن الـ Date

http://download.orac.../util/Date.html

اتمنى ان اكون افدتك

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 22 أغسطس 2010 في 19:52

Software Developer
Mahmoudkelany.com


 

#2
اقتباس
لاحظو اني استخدمت الكلاس Date بدلاً من Calender ، فأيهما افضل ؟؟

تم الغاء معظم دوال ال Date و استبدالها بدوال في كائن Calendar

و حسب ما بحثت

ان ال Date يتعامل مع وقت معين (الوقت الحالي )

اما ال Calendar يتعامل مع فرق التوقيت بين تارخين (الوقت الحالي و وقت البداية (January 1, 1970 00:00:00.000 GMT.) )

والله اعلم

المصدر

#3

حلو ... إذن لازم اعمل كذا تطبيق بالـ Calender عشان اعرف كيف ممكن استفيد منه فعلاً ... اعجبتني حكاية (اما ال Calendar يتعامل مع فرق التوقيت بين تارخين)

مشكورين :)

بنت اليمن ،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#4
بنت اليمن كتب:

حلو ... إذن لازم اعمل كذا تطبيق بالـ Calender عشان اعرف كيف ممكن استفيد منه فعلاً ... اعجبتني حكاية (اما ال Calendar يتعامل مع فرق التوقيت بين تارخين)

مشكورين :)

بنت اليمن ،

العمليه سهله جدا باذن الله

من الرابط بتاع الـ Calender Class

ممكن تعرفى كل شىء عنها

وكمان

لو عاوزه اى شىء من الـ Calender

هتعملى

Calendar calendar = Calendar.getInstance();

وبعدين تستخدى هذا الكائن

وتستدعى عليه الداله get(..)

التى تاخذ قيمه integer

وبعدها تقولى بداخل الداله get باستخدام الـ Calender Class واستدعاء عليها الثوابت التى تريدينها

من

HOUR
SECOND
MINUTE
DATE
MONTH
YEAR
.
.
.

والكثير يمكنك رؤيته من خلال الـ Documentation او من خلال النت بينز نفسه والتجربه وملاحظه ماذا يحدث

كما بالصوره

post-217802-015113600 1282429285_thumb.j

المرفقات
Untitled-1.jpg

تم تعديل هذه المشاركة بواسطة محمد عرسان في 22 أغسطس 2010 في 01:38 — السبب: تغيير وسوم console الى code

Software Developer
Mahmoudkelany.com


 

#5

شاكرة جداً لتعاونك اخي الكريم محمود :) طبعاً اول خطوة عندي كانت فهم التالي :

Calendar calendar = Calendar.getInstance();

بمعنى لماذا نستدعي الميثود getInstance لإنشاء كائن من الكلاس Calendar ... ؟؟

ففهمت لاحقاً ان الدالة او الميثود البانية (الكنستراكتر) للكلاس Calendar من النوع protected !!! , و بالتالي

الوصول إاليها ليس مباشر من الكلاسات الغير مرتبطة بالكلاس Calendar ..

عموماً هنا التوصيف الكامل لهذا الكلاس للمزيم من التوسع:

http://download.oracle.com/javase/6/docs/api/java/util/Calendar.html

جزاك الله خير :)

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#6
بنت اليمن كتب:

شاكرة جداً لتعاونك اخي الكريم محمود :) طبعاً اول خطوة عندي كانت فهم التالي :

Calendar calendar = Calendar.getInstance();

بمعنى لماذا نستدعي الميثود getInstance لإنشاء كائن من الكلاس Calendar ... ؟؟

ففهمت لاحقاً ان الدالة او الميثود البانية (الكنستراكتر) للكلاس Calendar من النوع protected !!! , و بالتالي

الوصول إاليها ليس مباشر من الكلاسات الغير مرتبطة بالكلاس Calendar ..

عموماً هنا التوصيف الكامل لهذا الكلاس للمزيم من التوسع:

http://download.oracle.com/javase/6/docs/api/java/util/Calendar.html

جزاك الله خير :)

العفو اختى الكريمه

ايوه فعلا

وانا كنت بتلخبط فيها زمان بقا :lol: :lol: الحمدلله دلوقتى بقت زى System.out.println();

المهم

لو حبيبتى تعملى كائن جديد منها هتلاقى نفسك دخلتى فى متاهات وهى انه هيعمل override للـ 8 دوال

انتى فى غنى عنهم لا تحتاجيهم

هكذا

Calendar calendar = new Calendar() {

                        @Override
                        protected void computeTime() {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        protected void computeFields() {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        public void add(int field, int amount) {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        public void roll(int field, boolean up) {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        public int getMinimum(int field) {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        public int getMaximum(int field) {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        public int getGreatestMinimum(int field) {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }

                        @Override
                        public int getLeastMaximum(int field) {
                            throw new UnsupportedOperationException("Not supported yet.");
                        }
                    };

لذلك ناخذ منها getInstace وبالتالى كاننا عرفناها وبعد ذلك نستطيع التعامل معاها واخذ ما نحتاجه منها

والله اعلم :)

Software Developer
Mahmoudkelany.com


 

#7
اقتباس
Calendar.getInstance();

لانه يتم تكوين GregorianCalendar و التعديل على قيمها بالاصل و ارجاعها.

انظري الكود المصدري لها

#8
محمد عرسان كتب:

لانه يتم تكوين GregorianCalendar و التعديل على قيمها بالاصل و ارجاعها.

انظري الكود المصدري لها

ازاى يتم تكوين GregorianCalendar

مع العلم انها مورثه من الـ Calendar فبالتالى الـ Calendar هى الاصل

انظر الى التوثيق الخاص بها

اقتباس
public class GregorianCalendar extends Calendar

GregorianCalendar is a concrete subclass of Calendar and provides the standard calendar system used by most of the world.

GregorianCalendar is a hybrid calendar that supports both the Julian and Gregorian calendar systems with the support of a single discontinuity, which corresponds by default to the Gregorian date when the Gregorian calendar was instituted (October 15, 1582 in some countries, later in others)

اما بالنسبه للداله getInstance فهى ترجع لنا Calendar بالتالى انه قد تم تعريف كائن جديد تم تخزينه فى ال calendar object الذى تم تعريفه هنا

Calendar calendar = Calendar.getInstance();

انظر الى التوثيق الخاص بها

اقتباس

getInstance

public static Calendar getInstance()Gets a calendar using the default time zone and locale. The Calendar returned is based on the current time in the default time zone with the default locale.

Returns:

a Calendar.

Software Developer
Mahmoudkelany.com


 

#9

جميل جداً ... لاحظوا الكود المصدري للكلاس كليندر

هذه الدالة البانية - من نوع protected:

protected Calendar()
    {
        this(TimeZone.getDefaultRef(), Locale.getDefault());
	sharedZone = true;
    }

اما الدالة getInstance فهي تستدعي الميثود createCalendar و التي اعتقد انها هي التي تقوم بالعمل ... لاحظوا:

public static Calendar getInstance()
    {
        Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());
	cal.sharedZone = true;
	return cal;
    }

private static Calendar createCalendar(TimeZone zone,
					   Locale aLocale)
    {
	// If the specified locale is a Thai locale, returns a BuddhistCalendar
	// instance.
	if ("th".equals(aLocale.getLanguage())
	    && ("TH".equals(aLocale.getCountry()))) {
	    return new sun.util.BuddhistCalendar(zone, aLocale);
	} else if ("JP".equals(aLocale.getVariant())
		   && "JP".equals(aLocale.getCountry())
		   && "ja".equals(aLocale.getLanguage())) {
	    return new JapaneseImperialCalendar(zone, aLocale);
	}

اعتقد اننا لابد ان نفتح موضوع جديد لهذا الموضوع ... اعذرني اخي محمود فقد افسدت عليك الموضوع :happy:

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#10

Calendar هي فئة abstract، فكيف يمكن أن تحصل على instance لها؟!!!

ما يعنونه في ال documentation هو أنك تحصل على فئة ترث من Calendar.

الفئة GregorianCalendar ترث من Calendar، بالتالي فهي تُعتبر Calendar

1
#11

اوووووه فاتني ان اقرأ اول الكلاس !! كلام سليم اخي الكريم :

public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#12
بنت اليمن كتب:

جميل جداً ... لاحظوا الكود المصدري للكلاس كليندر

هذه الدالة البانية - من نوع protected:

protected Calendar()
    {
        this(TimeZone.getDefaultRef(), Locale.getDefault());
	sharedZone = true;
    }

اما الدالة getInstance فهي تستدعي الميثود createCalendar و التي اعتقد انها هي التي تقوم بالعمل ... لاحظوا:

public static Calendar getInstance()
    {
        Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());
	cal.sharedZone = true;
	return cal;
    }

اعتقد اننا لابد ان نفتح موضوع جديد لهذا الموضوع ... اعذرني اخي محمود فقد افسدت عليك الموضوع :happy:

تمام جدا اختى " بنت اليمن " جزاكى الله خيرا

هو فعلا عاوز موضوع جديد لان الموضوع دخل فى الـ Calender لكى يكون منفصل

لا ما فى شىء

بدال علم خلاص

بس كان يحتاج الى بعض التنظيم ليس اكتر

Software Developer
Mahmoudkelany.com


 

#13
herch كتب:

Calendar هي فئة abstract، فكيف يمكن أن تحصل على instance لها؟!!!

ما يعنونه في ال documentation هو أنك تحصل على فئة ترث من Calendar.

الفئة GregorianCalendar ترث من Calendar، بالتالي فهي تُعتبر Calendar

اخى عصام دائما ياتى بالمفيد

شوفت جميل اخى عصام

حفظك الله

لكن اعتقد ان استخدام GregorianCalendar

لا يفيدنا فى شىء

يعنى الـ Calendar

تكفى لاداء الغرض

فهى تمكنا من اخذ كائن منها وعمل له new

اما الـ Calender لا تمكنا من عمل new لهذا الكائن

يمكنك ملاحظه الاستخدام فى عرض الساعه

  GregorianCalendar gregorianCalendar = new GregorianCalendar();
  gregorianCalendar.get(GregorianCalendar.HOUR);

و

Calendar calendar = Calendar.getInstance();
 calendar.get(Calendar.HOUR);

للاطلاع على الـ GregorianCalendar

http://download.oracle.com/javase/1.4.2/docs/api/java/util/GregorianCalendar.html

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 22 أغسطس 2010 في 03:12

Software Developer
Mahmoudkelany.com


 

#14

ليس الموضوع كما فهمته اخ محمود

الموضع كالتالي:

Calendar cal =Calendar.getInstance();

هو مساوي للعملية التالية:

Calendar cal=new GregorianCalendar(TimeZone.getDefault(), Locale.getDefault());

لكن للالاسف تنقص خطوة واحدة في الكود الثاني، اذ يتم التعديل على متغير private هو sharedZone

كالتالي:

cal.sharedZone = true;

لكن لا يمكننا ذلك بما انه منغير private

ليس بالشرح الوافي ، من لديه شرح اوفى ليضعه

و شكرا

تم تعديل هذه المشاركة بواسطة محمد عرسان في 22 أغسطس 2010 في 04:01 — السبب: تعدل الاوسمة

#15

السلام عليكم

شكرا اخى محمود على الموضوع

يكفى انك وضعت البداية لهذا النقاش المثمر

أريد ان اوضح نقطة بسيطة وهى انك لست مضطر الى استدعاء الدوال

getHour();
getMinute();
getSecond();

يمكنك استخدام تنسيق التاريخ DateFormat والتحكم اكثر واختصار الكود

وقد قمت بكتابة مثال بسيط عسى ان يوضح الفكرة

وبه ايضا استخدام ال Swing Timer

الشفرة

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewJFrame.java
 *
 * Created on 22/08/2010, 11:59:28 ص
 */

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

/**
 *
 * @author Mohamed Fathei
 */
public class NewJFrame extends javax.swing.JFrame {

	/** Creates new form NewJFrame */
	public NewJFrame() {
    	try {
        	initComponents();
        	this.setLocationRelativeTo(null);
        	setupTimer();
    	} catch (Exception ex) {
        	System.out.println(ex.getMessage());
    	}
	}

	/** This method is called from within the constructor to
 	* initialize the form.
 	* WARNING: Do NOT modify this code. The content of this method is
 	* always regenerated by the Form Editor.
 	*/
	@SuppressWarnings("unchecked")
	// <editor-fold defaultstate="collapsed" desc="Generated Code">
	private void initComponents() {

    	jLabel1 = new javax.swing.JLabel();

    	setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    	setTitle("Timer Example");
    	setResizable(false);

    	jLabel1.setBackground(new java.awt.Color(255, 255, 255));
    	jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N
    	jLabel1.setForeground(new java.awt.Color(0, 0, 153));
    	jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    	jLabel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
    	jLabel1.setOpaque(true);

    	javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    	getContentPane().setLayout(layout);
    	layout.setHorizontalGroup(
        	layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        	.addGroup(layout.createSequentialGroup()
            	.addGap(108, 108, 108)
            	.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 303, javax.swing.GroupLayout.PREFERRED_SIZE)
            	.addContainerGap(130, Short.MAX_VALUE))
    	);
    	layout.setVerticalGroup(
        	layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        	.addGroup(layout.createSequentialGroup()
            	.addGap(188, 188, 188)
            	.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
            	.addContainerGap(247, Short.MAX_VALUE))
    	);

    	pack();
	}// </editor-fold>

	private void setupTimer() throws Exception {

    	ActionListener handler = new ActionListener() {

        	Calendar calend = Calendar.getInstance();
        	SimpleDateFormat formatter = new SimpleDateFormat("hh:mm:ss a");

        	public void actionPerformed(ActionEvent e) {

            	SwingUtilities.invokeLater(new Runnable() {

                	public void run() {
                    	calend = Calendar.getInstance();
                    	jLabel1.setText(formatter.format(calend.getTime()));
                	}
            	});
        	}
    	};

    	Timer timer = new Timer(1000, handler);
    	timer.setInitialDelay(0);
    	timer.setRepeats(true);
    	timer.start();

	}

	/**
 	* @param args the command line arguments
 	*/
	public static void main(String args[]) {
    	java.awt.EventQueue.invokeLater(new Runnable() {

        	public void run() {
            	new NewJFrame().setVisible(true);
        	}
    	});
	}
	// Variables declaration - do not modify
	private javax.swing.JLabel jLabel1;
	// End of variables declaration
}

قمت باستخدام المؤقت وال Runnable Interface و استدعاء كائن من النتيجة Calendar

وتنسيقها باستخدام SimpleDateFormat

اتمنى ان يكون الكود مفيد واذا فيه شئ ارجو التنبيه

تقبلوا مرورى

تحياتى

تم تعديل هذه المشاركة بواسطة Oracle_Java في 22 أغسطس 2010 في 13:48

3


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#16

رائع جداً اخي الكريم ... يبدون ان إستخدام الكلاس SimpleDateFormat سيوفر العديد من عمليات التنسيق ... :

Format formatter; // The hour (1-12) 
formatter = new SimpleDateFormat("h"); // 8 
formatter = new SimpleDateFormat("hh"); // 08 // The hour (0-23) 
formatter = new SimpleDateFormat("H"); // 8 
formatter = new SimpleDateFormat("HH"); // 08 // The minutes 
formatter = new SimpleDateFormat("m"); // 7 
formatter = new SimpleDateFormat("mm"); // 07 // The seconds 
formatter = new SimpleDateFormat("s"); // 3 
formatter = new SimpleDateFormat("ss"); // 03 // The am/pm marker 
formatter = new SimpleDateFormat("a"); // AM // The time zone 
formatter = new SimpleDateFormat("z"); // PST 
formatter = new SimpleDateFormat("zzzz"); // Pacific Standard Time 
formatter = new SimpleDateFormat("Z"); // -0800 // Get today's date 
Date date = new Date(); // Some examples 
formatter = new SimpleDateFormat("hh:mm:ss a"); 
String s = formatter.format(date); // 01:12:53 AM 
formatter = new SimpleDateFormat("HH.mm.ss"); 
s = formatter.format(date); // 14.36.33

المصدر

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#17

+1

اخى محمد

بجد بجد

جزاك الله خيرا

انا مش كنت فاهم قصد اخويا عصام

لكن بالمثال بتاعك فهمت اازاى استخدمها

ربنا يعطيك العافيه يارب ويحفظك

ملاحظه بقا

انا اللى وقعت فيها

لم جيت اطبق مثالك بعد ان فهمته قولت اكتب الكود بنفسى

فى الجزئيه الخاصه بالـ SimpleDateFormat

عملت كدا

SimpleDateFormat calendarFormat = new SimpleDateFormat("HH:MM:SS a");

انا قولت مفيش فرق بينها وبين

SimpleDateFormat calendarFormat = new SimpleDateFormat("hh:mm:ss a");

لكن لقيت الساعه بايظه فى الشكل وفى الوقت

كدا

post-217802-001359000 1282478985_thumb.j

post-217802-051738700 1282478967_thumb.j

اردت التنبيه الى هذا الخطا

وايضا ان كانت هناك اجابه لذلك

بنت اليمن كتب:

رائع جداً اخي الكريم ... يبدون ان إستخدام الكلاس SimpleDateFormat سيوفر العديد من عمليات التنسيق

المصدر

شكرا اختى بنت اليمن

المرفقات
timerFormat.jpgTimerFormater.jpg

Software Developer
Mahmoudkelany.com


 

#18
بنت اليمن كتب:

رائع جداً اخي الكريم ... يبدون ان إستخدام الكلاس SimpleDateFormat سيوفر العديد من عمليات التنسيق ... :

المصدر

شكرا للاخت بنت اليمن وعودة حميدة للمنتدى نرجو عدم الانقطاع مرة اخرى

بالفعل SimpleDateFormat سيوفر العديد من عمليات التنسيق

Mahmoud Kelany كتب:

+1

اخى محمد

بجد بجد

جزاك الله خيرا

انا مش كنت فاهم قصد اخويا عصام

لكن بالمثال بتاعك فهمت اازاى استخدمها

ربنا يعطيك العافيه يارب ويحفظك

ملاحظه بقا

انا اللى وقعت فيها

لم جيت اطبق مثالك بعد ان فهمته قولت اكتب الكود بنفسى

فى الجزئيه الخاصه بالـ SimpleDateFormat

عملت كدا

SimpleDateFormat calendarFormat = new SimpleDateFormat("HH:MM:SS a");

انا قولت مفيش فرق بينها وبين

SimpleDateFormat calendarFormat = new SimpleDateFormat("hh:mm:ss a");

لكن لقيت الساعه بايظه فى الشكل وفى الوقت

كدا

post-217802-001359000 1282478985_thumb.j

post-217802-051738700 1282478967_thumb.j

اردت التنبيه الى هذا الخطا

وايضا ان كانت هناك اجابه لذلك

شكرا اختى بنت اليمن

شكرا لك محمود فأنت صاحب الموضوع

وشكرا لك على عرضك للملاحظات التى تواجهك لنستفيد منها

موفق وللأمام دائما

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#19
Oracle_Java كتب:

شكرا للاخت بنت اليمن وعودة حميدة للمنتدى نرجو عدم الانقطاع مرة اخرى

بالفعل SimpleDateFormat سيوفر العديد من عمليات التنسيق

شكرا لك محمود فأنت صاحب الموضوع

وشكرا لك على عرضك للملاحظات التى تواجهك لنستفيد منها

موفق وللأمام دائما

تحياتى

العفو ولكن انت واخوتى الكرام من اثريتم الموضوع بردودكم تفاعلكم على الخير والتعلم

الحمدلله

اريد فقط الا يقع بها احد

لكن هل من اجابه لهذا الخطا ؟؟

Software Developer
Mahmoudkelany.com


 

#20
Mahmoud Kelany كتب:

العفو ولكن انت واخوتى الكرام من اثريتم الموضوع بردودكم تفاعلكم على الخير والتعلم

الحمدلله

اريد فقط الا يقع بها احد

لكن هل من اجابه لهذا الخطا ؟؟

نعم

HH تعنى عرض الساعات على رقمين zero leading وبتنسيق ال 24ساعة مثل 06 و 21

M تعنى الشهور على رقم واحد مثل 7 و 11

MM تعنى عرض الشهور على رقمين zero leading مثل 03 و 11 وليست الدقائق

h تعنى الساعات على رقم واحد وبنظام 12ساعة مثل 4 و 10

hh تعنى الساعات على رقمين zero leading مثل 04 و 11 بنظام 12ساعة

mm تعنى الدقائق وليست الشهور على رقمين zero leading

ss تعنى الثوانى ايضا على رقمين zero leading

a تعنى AM , PM او ص , م

هذا مايحضرنى الان ويمكنك الرجوع الى المصدر Java How to Program 6th Edition

الفصل الموجود بعنوان Formatted Output

بالتوفيق

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#21

MM تمثل الشهر، بينما mm تمثل الدقائق

لذلك تبقى ثابتة، لأنك تطبع الشهر وليس الدقائق.

راجع توثيق الفئة SimpleDateFormat، يوجد فيها جدول بكل الحروف ومعانيها

#22

شكرا جزيلا اخويا محمد واخويا عصام

جزاكم الله خيرا

ووفقكم جميعا

تمام كدا اتفهم الخطأ

ودى صور من الموقع ليكون الموضوع متكامل هنا

post-217802-072243700 1282484002_thumb.j

post-217802-071610400 1282484010_thumb.j

المرفقات
FormaterTime.jpgFormaterTimeEx.jpg

Software Developer
Mahmoudkelany.com


 

#23

أعرف أن الجميع هنا على الأغلب يدرك الكلام التالي لكني أضيف هذه المشاركة لمن يقرأ هذا الموضوع في المستقبل

أحب أن أوضح أن الفئة Calender تمثل فعلياً تقويم بكل ما تعنيه الكلمة

فهي تقوم بالمقارنة بين تاريخين

تقوم بالإجابة على أسئلة مثل ما التاريخ الذي يسبق التاريخ الحالي بخمس أيام

كم عدد الأيام في شهر ما

وأشياء أخرى كثيرة

بينما الفئة Date تحتوي على بيانات تاريخ معين

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#24

هو كما ذكرت بالضبط اخي المشرف علاء ... هكذا فهمت الفرق ... الغريبة اني لم افكر مسبقاً تجربة

هذا الكلاس ... و الفكرة ان يستفيد المبرمج من الإضافات في الكلاسات الحديثة !!!

ساحاول أن اثري هذا الموضوع اكثر إن شاء الله ... و افكر ان نفتح ورش عمل اخرى (مثل المصفوفات لو تذكر ) بمواضيع اخرى من اجل إكتشاف الجديد فيها :)

بالتوفيق ...

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#25

أحب ورش العمل وأتمنى أن يشارك الجميع فيها

المشكلة أن الاهتمامات ليست واحدة لدى الجميع

لذا لا نجد إقبال على ورشات العمل

سأفتح موضوع لأرى ما يهتم به الشباب في قسم الجافا

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة