سؤال

تم تدوين سلسلة مدخلاتي على النحو التالي:

3/4/2010 10:40:01 AM
3/4/2010 10:38:31 AM

الكود الخاص بي هو:

DateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss aa");
            try
            {
                Date today = dateFormat.parse(time);
                System.out.println("Date Time : " + today);

            }
            catch (ParseException e)
            {
                e.printStackTrace();
            }

الإخراج هو:

Sun Jan 03 10:38:31 AST 2010
Sun Jan 03 10:40:01 AST 2010

لست متأكدًا من أين جاء اليوم (الشمس)؟ أو (AST)؟ ولماذا التاريخ خاطئ؟ أردت فقط أن أحتفظ بنفس تنسيق الأصل سلسلة تاريخ وجعله في تاريخ هدف.

أنا أستخدم إصدار NetBeans 6.8 Mac.

هل كانت مفيدة؟

المحلول

إذا كنت ترغب في طباعة التاريخ بالتنسيق الأصلي ، فاستخدم طريقة التنسيق:

System.out.println("Date Time : "+ dateFormat.format(today));

يقول Javadoc: إن التنسيق "الغريب" يأتي من تطبيق Tostring في Date ، يقول Javadoc:

يحول كائن التاريخ هذا إلى سلسلة من النموذج:

Dow Mon DD HH: MM: SS Zzz Yyyy

"I just wanted to keep the same format of the original String date and make it into a Date object."

يهدف كائن التاريخ إلى تمثيل لحظة محددة في الوقت المناسب ، لا يمكنك الاحتفاظ بتنسيق السلسلة الأصلية فيه ، ولهذا السبب لدينا فئة DateFormat.

نصائح أخرى

يجب أن يكون مم ، وليس مم. Mmrase Mm هو لدقائق ، وليس أشهر.

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa");

MM, ، ليس mm لأشهر. انت تستخدم mm مرتين - ومنطقي ، إنها نفس الأشياء - دقائق.

الجواب بسيط. لقد عرضت قيمة Date.ToString () اليوم وليس إصدار DateFormat المقصود. ما تحتاجه هو:

System.out.println("Date Time : " + dateFormat.format(today) );

طباعة التاريخ باستخدام system.out.println () النتائج في إلى سلسلة() الطريقة التي يتم استدعاؤها في كائن التاريخ.

سلسلة التنسيق المستخدمة في tostring () هي ما يسبب يوم الأسبوع وتظهر المنطقة الزمنية في الإخراج.

هذا بصرف النظر عن خطأ التحليل الذي أشار إليه دافي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top