1. المعرفة التحضير
1.
2016-3-13 ، 02:00:00 إلى 2016-11-6 ، 02:00:00
2017-3-12 ، 02:00:00 إلى 2017-11-5 ، 02:00:00
2. معرف المنطقة الزمنية الثلاثة أحرف
من أجل التوافق مع JDK 1.1.x ، يتم دعم بعض معرفات المنطقة الزمنية المكونة من ثلاثة أحرف (مثل "PST" ، "CTT" ، "AST").
ومع ذلك ، يتم تجاهل استخدامها لأن نفس الاختصار غالبًا ما يتم استخدامه في مناطق زمنية متعددة
على سبيل المثال ، CST: لديها 4 معاني ، الولايات المتحدة ، أستراليا ، الصين ، بتوقيت كوبا
3. المعيار
GMT: Green Mean Time Time Greenwich Time ، تم استخدامه كمرجع قياسي GMT+12-> GMT-12 قبل عام 1960
نطاق Java8 هو GMT+18-> GMT-18
UTC: إحداثيات زمن الوقت العالمي المنسقة في العالم ، وهو أكثر دقة من GMT ، ويصبح المعيار الجديد في 1 يناير 1972 ؛ UTC ، UTC+1 ، UTC+2 ... UTC+12 ، UTC-12 ... UTC-1
نطاق Java8 UTC-18-> UTC+18
DST: يشير وقت توفير ضوء النهار إلى الوقت الذي يتم فيه تشغيل الساعة لمدة ساعة في الصيف لاستخدام ضوء الشمس في وقت سابق. يطلق عليه وقت الصيف في المملكة المتحدة.
حاليًا ، تستخدم أكثر من 110 دولة وقت توفير النهار ؛
في الصين ، تم تنفيذها فقط لمدة 6 سنوات من 1986 إلى 1992 ، وتم إلغاؤها بعد ذلك ؛ الأسباب كما يلي:
1. الصين لديها فترة كبيرة في الاتجاهات الشرقية والغربية ، وتبني منطقة شرق الثامنة الموحدة ، والتي لا تتوافق مع الشرق والغرب باستخدام وقت توفير النهار ؛
2. في المناطق ذات الخطوط العرضية العالية ، يتغير وقت النهار والليل بشكل كبير في الشتاء والصيف ؛ انها ليست ذات مغزى جدا.
4. يمكن استخدامه للإشارة إلى أن المقاطعة الثامنة الشرقية هي: GMT+8 أو إلخ/GMT-8 (العكس فقط ، لماذا؟ لأن مطوري PHP يعتقدون أن المقاطعة الثامنة الشرقية هي أسرع 8 ساعات من الوقت القياسي ، ويجب طرحها بمقدار 8 ساعات ، لذلك فإن التمثيل مثل هذا. أشياء مرجعية مختلفة مختلفة إلى تمثيل تمثيل مختلف ؛)
5. كيف تمثل المنطقة الزمنية للصين
GMT+8
UTC+8
آسيا/هاربين هاربين // الصين التوقيت القياسي
آسيا/تشونغتشينغ تشونغتشينغ // الصين التوقيت القياسي
آسيا/تشونغتشينغ // الصين التوقيت القياسي
آسيا/urumqi urumqi // الصين التوقيت القياسي
آسيا/شنغهاي شنغهاي (منطقة شرق 8) // الصين التوقيت القياسي
PRC
آسيا/ماكاو ماكاو // الصين التوقيت القياسي
تتوافق هونجكونج هونغ كونغ // هونغ كونغ بتوقيت مع توقيت الصين القياسي
آسيا/Hong_kong هونغ كونغ
آسيا/تايبيه تايبيه (تايوان) // الصين التوقيت القياسي في سنغافورة هي نفس زمن الصين ؛
آسيا/سنغافورة
سنغافورة
6. تمثيل المناطق الزمنية القياسية
التوقيت العالمي
UTC+0
UTC-0
GMT GMT
GMT0 GMT
الخ/gmt gmt
الخ/gmt+0 بتوقيت جرينتش
الخ/gmt-0 بتوقيت جرينتش
ETC/GMT0 GMT0 GMTS الوقت القياسي ملاحظة: GMT+XX (-xx) شاملة للغاية ويمكنه تحديد تمثيل الوقت المختلفة تلقائيًا.
2. تحويل المنطقة الزمنية
البيئة: قبل Java8
1. تحويل الوقت الحالي إلى شاشة المنطقة الزمنية المحددة
Test public void test () يلقي الاستثناء {Date a = new Date () ؛ SimplEdateFormat sf = new SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ sf.settimezone (timezone.gettimezone ("America/new_york")) ؛ // تحويل المنطقة الزمنية الصينية إلى المنطقة الزمنية في نيويورك في الولايات المتحدة. }2. يتم تحويل الوقت المحدد إلى شاشة المنطقة الزمنية المحددة
هل يمكنني حقًا التحويل بشكل صحيح؟ يبدو أن هناك مأزق ، نظرت إلى التنفيذ عبر الإنترنت
أشعر بقليل من مشكلة التوفير في ضوء النهار
// طريقة التنفيذ 1: لا يُعتبر وقت توفير النهار ، Test Public Void Test2 () يلقي استثناءً { /Date DateTime = جديد SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS"). PARSE ("2016-11-6 14:00:00") ؛ Date DateTime = جديد SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS"). Parse ("2016-10-6 14:00:00") ؛ Timezone Zhong = timezone.gettimeZone ("GMT+8: 00") ؛ // China timezone York = TimeZone.gettimeZone ("America/New_york") ؛ // gmt-5 // إزاحة المنطقة الزمنية هنا تم إصلاحها ، لا يوجد وقت لتوفير ضوء النهار ، خطأ chinesemills طويل = dateTime.getTime () تاريخ التاريخ = تاريخ جديد (chinesemills) ؛ System.out.println (جديد spimdateformat ("Yyyy-MM-DD HH: MM: SS"). التنسيق (التاريخ)) ؛ } // طريقة التنفيذ 2 قد تتذكر أنه باستخدام Calendar.dst_offset من فئة التقويم // لا يزال من غير الصواب في التقويم. SimpleDateFormat ("YyyyM-MM-DD HH: MM: SS"). Parse ("2016-11-6 1:00:00") ؛ // Time Date = New SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"). parse ("2016-11 1:00:00") ؛ HH: MM: SS "). Parse (" 2016-11-6 0:59:00 ") ؛ // تاريخ التاريخ = جديد SimpleDateFormat (" Yyyyy-MM-DD HH: MM: SS "). Parse (" 2016-11-6 1:59:59) HH: MM: SS "). Parse (" 2016-11-6 3:00:00 ") ؛ // 1. الحصول على الوقت المحلي: Calendar Cal = Calendar.getInstance () ؛ Cal.Settime (time) ؛ cal.get (Calendar.Zone_offset)/(1000*60*60) ؛ // 3. طالما كان هناك وقت لتوفير ضوء النهار في المنطقة الزمنية ، فهو 1int dstoffset = cal.get (calendar.dst_offset)/(1000*60*60) ؛ system.out.println (ZoneOffset) ؛ system.out.println (dstoffset) ؛ // 4. -(ZoneOffset + dstoffset)) ؛ cal.add (calendar.hour ، -(ZoneOffset + dStoffset)) ؛ تاريخ التاريخ 2 = cal.getTime () . //لنفترض أولاً اختبارًا بسيطًا لمعرفة ما إذا كانت طريقة الحكم في وقت التوفير في ضوء النهار صحيحة ، ويمكنك أن تستنتج ما إذا كانت المعالجة التلقائية لـ Java صحيحة // من المعروف أنه في عام 2016: America/New_york's Daylight Time time time is: 2016-3-13 02:00:00 to 2016-11-06 01:59:59 @TTEST FOID TEST4 () SimplEdateFormat sf = new SimplEdateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ sf.settimezone (timezone.gettimezone ("GMT+0")) ؛ // Date DateTime = sf.parse ("2016-11-6 5:59:59") ؛ DATE D1 = SF.Parse ("2016-03-13 6:59:59") ؛ // DATE DATE D2 = SF.Parse ("2016-03-13 7:00:00") ؛ // True Date d3 = sf.parse ("2016-11-6 6:59:59") ؛ وجدت أنه في الواقع لا توجد مشكلة في الحكم على بداية الوقت لتوفير النهار ، ولكن في الوقت النهائي لوقت توفير النهار ، ليكون دقيقًا ، لقد حكمت عليه قبل ساعة من ذلك // انظر إلى التحقق أدناه ، فلماذا على بعد ساعة؟ كيف تحلها؟ في الوقت الحاضر ، لا يمكنني استخدام JAVA8 D3 = SF.Parse إلا ("2016-11-6 5:59:59") ؛ // True D4 = SF.Parse ("2016-11-6 6:00:00") ؛ // false timezone york = timezone.gettimezone ("أمريكا/new_york") ؛ // gmt-5 system.out.println ("هل تستخدم المنطقة الزمنية المستهدفة وقت توفير النهار:"+isDaylight (York ، D1)) ؛ System.out.println ("هل تستخدم المنطقة الزمنية المستهدفة وقت توفير النهار:"+IsDaylight (York ، D2)) ؛ System.out.println ("هل تستخدم المنطقة الزمنية المستهدفة وقت توفير النهار:"+IsDaylight (York ، D3)) ؛ System.out.println ("هل تستخدم المنطقة الزمنية المستهدفة وقت توفير النهار:"+IsDaylight (York ، D4)) ؛ }. } // طريقة التنفيذ 3 // من خلال التحقق أعلاه ، نعلم أن حكم النظام يمثل مشكلة. من خلال إعداد المنطقة الزمنية ، يتولى البرنامج تلقائيًا التوفير في ضوء النهار. على الأقل لا أستطيع أن أفهم لماذا testpublic void test 5 () يلقي الاستثناء {// 13 ساعة صينية + 8 New York-5 Changezone ("2016-3-13 14:59:59" ، "PRC" ، "America/New_york" ، "yyyy-mm-dd hh: mm: ss") ؛ 15:00:00 "،" PRC "،" America/New_york "،" Yyyy-MM-DD HH: MM: SS ") ؛ // 2016-03-13 03:00:00 Changezone (" 2016-11-6 13:59:59 "،" PRC "،" America/New_york "،" 01:59:59 // هذه النتيجة خاطئة ، يجب أن تكون 02:00:00 تغيير المنطقة ("2016-11-6 14:00:00" ، "PRC" ، "America/New_york" ، "yyyy-mm-dd hh: mm: ss") ؛ // 2016-11-06 01:00:00}. الوقت ، سلسلة srcid ، سلسلة destid ، سلسلة) يلقي parseException {// اضبط المنطقة الزمنية الافتراضية المنطقة الزمنية = timezone.gettimezone (srcid) ؛ timezone.setDefault (Zone) ؛ تاريخ التاريخ = جديد simpleatformat (نمط) .parse (الوقت) ؛ // قم بتعيين المنطقة الزمنية المستهدفة للمنطقة الزمنية deStzone = timezone.gettimezone (DestID) ؛ SimplEdateFormat SDF = جديد spileDateFormat (نمط) ؛ // قم بتعيين المنطقة الزمنية المراد تنسيقها sdf.settimezone (DeStozone) ؛ String changtime = sdf.format (date) ؛ // احصل على النظام الزمني المستهدف. }ملخص: النتائج التي تم الحصول عليها من قبل طرق التنفيذ الثلاثة أعلاه هي مشكلة إلى حد ما بالنسبة لتوفير ضوء النهار
ثلاثة ، تنفيذ Java8
1. دعونا نلقي نظرة على تغييرات المنطقة الزمنية في Java 8 أولاً
. "،]") ؛ system.out.println (ids.size ()) ؛ // 28 مناطق زمنية مفقودة قبل سلسلة jdk8 [] id2 = timezone.getavailableIds () ؛ system.out.println (id2.length) ؛ // 623 // تعرف على (معرف السلسلة: id2) {if (! idss.contains (id+"،")) {system.out.print (id+"،") ؛}} // الخلاصة: جميع المناطق الزمنية في jdk8 تم حذفها جميعًا قبل // jdk8 على النحو التالي: agt ، Art ، AST ، BET ، BST ، CAT ، CNT ، CST ، CTT ، EAT ، ECT ، IT ، IST ، JST ، MIT ، NET ، NST ، PLT ، PNT ، PRT ، PST ، SST ، VST ، // ولكن هذه الأسماء القصيرة لا تزال متوفرة في الواقع ، فهي غير متوفرة فقط في قائمة الدعم المحلية المحلية = localDateTime.OfinStant (stant.now () ، Zoneid.of (Zoneid.short_ids.get ("PST"))) ؛ system.out.println ("/ndate =" + date) ؛}2. كيفية إضافة معلومات المنطقة الزمنية ، أو تحويلها
. date.atstartofday (Zoneid.SystemDefault ()) ؛ System.out.println (Zone) ؛ // Method 2 LocalDate Date2 = localdate.now (Zoneid.of ("gmt+0")) ؛ system.out.println (date2) ؛ system.out.println ("---------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Zoneime3 = LocalDateTime.Now (clock.system (ZoneId.of ("GMT+0")) System.out.println (Zonetime3) ؛ // Change System.out.println (Zonetime4) ؛ // Change System.out.println ("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------3. كيفية الحصول على الوقت المحدد للوقت الحالي (تم حذف الاختبار)
// احصل على المنطقة الزمنية المحددة للوقت الحالي ، النقطة المرجعية: 0 زمنية عامة محلية محلية getCurrentZonetime (ZoneId dest) {objects.requirenonnull (dest) ؛ timeDateTime 2 = localDateTime.now (clock.system (dest)) ؛ سلسلة Zonedesc = getzonedesc (timezone.gettimezone (dest)) ؛ System.out.println (dest.getId ()+"يتوافق مع المنطقة الزمنية القياسية:"+zonedesc) ؛ System.out.println ("Target Time Zone"+Dest+"Time"+Time2.Format (DateTimeFormatter.ofpattern ("Yyyy-MM-DD HH: MM: SS"))) ؛ وقت العودة 2 ؛} // احصل على المنطقة الزمنية القياسية ، الطريقة 1 // الأسلوب قبل JDK8 ، استخدم سلسلة Timezone Static Static GetZonedesc (TimeZone Destzone) {Objects.Requirenonnull (Destzone) ؛ int infset = destzone.getRawoffset () / (1000 * 60 * 60) ؛ if (Offset <= 0) {return "gmt"+string.valueof (Offset) ؛ } آخر {return "gmt +" + string.valueof (الإزاحة) ؛ }} // طريقة java8 ، الطريقة 2 ، استخدم Zonerules // احصل على الإزاحة القياسية للمنطقة الزمنية ، Zonerules.GetStandardoffset // الحصول على الإزاحة الفعلية للمنطقة الزمنية (سوف تتغير الإزاحة التي تم الحصول عليها وفقًا لوقت التوفير في ضوء النهار) rule.getStandardOffset (ZonedDateTime.Now (dest) .toinstant ()). getId () ؛ String s = standardoffset.split (":") [0] ؛ int arsom = integer.parseint (s) ؛ // طريقة الإرجاع 1: مع الساعات والدقائق // إرجاع "GMT"+StandardOffset ؛ // طريقة الإرجاع 2: مع ساعات فقط إذا (Offset> 0) {return "gmt+"+Offset ؛} else {return "gmt"+offset ؛}}4. كيفية الحصول على الوقت المحدد للمنطقة الزمنية المحددة
ابدأ في تنفيذ مشكلة المنطقة الزمنية المتبقية أعلاه
وبالمثل ، دعونا أولاً نلقي نظرة على ما إذا كانت طريقة الحكم التوقيت لضوء النهار باستخدام Java8 صحيحة.
// اكتب مباشرة لتحديد ما إذا كان الوقت في الولايات المتحدة في وضح النهار يوفر الوقت العام المنطقي العام IsDayLightTime (localDateTime a) {objects.requirenonnull (a) ؛ startDate localDateTime = a.withmonth (3) .Tolocaldate (). Attime (2 ، 0) ؛ localdatetime startlightday = startDate.with (umporaladjusters.dayofweekinmonth (2 ، dayofweek.sunday)) ؛ enddate.with (ummoraladjusters.dayofweekinmonth (1 ، dayofweek.sunday)) ؛ if (a.isbefore (startLightday) Java8 هناك بالفعل طريقة جاهزة ، وهي أفضل من Mine // تمرير في الوقت المحدد والمنطقة الزمنية المحددة IsdayLightTime (LocalDateTime A ، ZoneId Dest) {ZonedDateTime Z1 = A.ATZone (dest) ؛ // أو نقل بهذه الطريقة // ZonedDateTime Z2 = ZonedDateTime.of (a ، dest) ؛ System.out.println (z1.format (dateTimeFormatter.ofpattern ("YyyyM-MM-DD HH: MM: SS"))) ؛ قواعد zonerules = dest.getRules () ؛ العلم المنطقي = القواعد. system.out.println (flag) ؛ return flag ؛ }// اختبره ، ووجد أن طريقة التوفير في ضوء النهار من Java8 صحيحة تمامًا
// من المعروف أن عام 2016: أمريكا/New_york في وضح النهار هو: 2016-3-13 02:00:00 إلى 2016-11-06 01:59:59 // (الأحد الثاني من شهر مارس وأحد الأحد الأول من نوفمبر من كل عام) testpublic void testname () استثناء {// localdatim localDateTime A2 = localDateTime.of (2016 ، 3 ، 13 ، 1 ، 59،59) ؛ LocalDateTime A3 = localDateTime.of (2016 ، 3 ، 13 ، 2 ، 00) ؛ localDatetime A4 = localdatetime.of (2016 ، 11 ، 6 ، 1 ، 59،59) ؛ localDatetime A5 = localDateTime.of (2016 ، 6 ، 2 ، 2 ، 0،0) ؛ // isdaylighttime (a2) ؛ // isdaylighttime (a3) ؛ // isdaylighttime (a4) ؛ // isDayLighttime (a5) ؛ system.out.println ("============================ =================================================================== =================================================================== =================================================================== =================================================================== =================================================================== =================================================================== ) ؛ // falseisdaylighttime (A3 ، Zoneid.of ("America/New_york")) ؛ // trueisdaytime (A4 ، ZoneID.of ("America/New_york") ؛ // trueisdaylighttime (A5 ، ZoneID.of ("America/New_york") ؛ // fasle}}ابدأ في التنفيذ:
الإصدار 1:
// احصل على نقطة مرجع الوقت المحددة للوقت المحدد: المنطقة الزمنية الافتراضية المحلية المحلية getZongTime (TimeDateTime time ، ZoneID Dest) {Objects.Requirenonnull (dest) ؛ إرجاع getzongtime (الوقت ، لاغية ، القدر) ؛ } // لا يمكنك طرحها من ZonedDateTime من منطقتين زمنيتين ، لأنه بمجرد تحديد المنطقة الزمنية هنا ، فإن هذا الوقت هو المنطقة الزمنية المحلية العامة getZongtime (TimeDateTime Time ، ZoneId SRC ، ZoneID Dest) {// الصعوبة هي كيفية العثور على ORFESS // منطقة الوقت الافتراضي هنا هي الصين ، والولايات المتحدة هي الولايات المتحدة. ربما يكون هذا أكثر ملاءمة للكائنات ZonedDateTime Z1 = null ؛ if (src == null) {z1 = time.atzone (Zoneid.SystemDefault ()) ؛ } آخر {z1 = time.atzone (src) ؛ } // تتغير استجابة المنطقة الزمنية في الوقت ZonedDateTime Z2 = Z1.WithSonesameInstant (dest) ؛ system.out.println (dest.getid ()+"يتوافق مع المنطقة الزمنية القياسية:"+getzonedesc (timezone.gettimezone (dest))) ؛ System.out.println ("Target Time Zone"+Dest+"Time"+Z2.Format (DateTimeFormatter.ofpattern ("Yyyy-MM-DD HH: MM: SS"))) ؛ System.out.println ("-----------------") ؛ وقت العودة }الاختبار كما يلي:
Test public void test6 () يلقي استثناء {// من المتوقع ألا يكون في وضح النهار Time2016-03-13 01:59:59 TimeDateTime 4 = localDateTime.of (2016 ، 3 ، 13 ، 14 ، 59 ، 59) ؛ GetZongTime (time4 ، Zoneid.of ("America/New_york")) ؛ // من المتوقع أن يكون في وضح النهار الوقت 2016-03-13 03:00:00 timeDateTime 1 = localDateTime.of (2016 ، 3 ، 13 ، 15 ، 00 ، 00) ؛ GetZongTime (time1 ، ZoneId.of ("America/New_york")) ؛ // النتيجة المتوقعة في التوقيت الصيفي: 2016-11-06 01:59:59 // أشعر أنه فشل مرة أخرى ، يجب أن يكون 2016-11-06 02:59:59 // وبعبارة أخرى ، فإن الطريقة قبل أن تتولى Java8 وقت التوقيت في نهاية هذا الوقت في هذا الوقت هو نفسه تمامًا ، والحكام قبل ساعة واحدة // 00:59:59 ، لكن طريقة حكم Java8 صحيحة. أليست غريبة بعض الشيء timeDateTime 2 = localDateTime.of (2016 ، 11 ، 6 ، 14 ، 59 ، 59) ؛ getZongTime (time2 ، Zoneid.of ("America/New_york")) ؛ // ليس من المتوقع أن يكون في وضح النهار Time2016-11-06 02:00:00 TimeDateTime 3 = localDateTime.of (2016 ، 11 ، 6 ، 15 ، 00 ، 00) ؛ GetZongTime (time3 ، ZoneId.of ("America/New_york")) ؛ }لذلك أشك الآن في ما إذا كانت هذه النتيجة مشكلة حسابية منهجية ، أم أنني لا أفهم عادات نيويورك؟
لكن لا يزال بإمكاني الحصول على النتائج التي أريدها ، استخدم طريقتين:
withearlieroffsetatoverlap () ، withlateroffsetatoverlap ()
الإصدار 2:
// احصل على نقطة مرجع الوقت المحددة للوقت المحدد: المنطقة الزمنية الافتراضية العامة localdateTime getZongTime2 (TimeDateTime time ، ZoneId dest) {Objects.Requirenonnull (dest) ؛ return getzongtime2 (time ، ZearyId stand) ؛ إزاحة // يتم استخدام المنطقة الزمنية الافتراضية هنا ، في الصين ، في الولايات المتحدة ، الولايات المتحدة هي الولايات المتحدة ، لذلك ربما تكون أكثر ملاءمة للأشياء. ZonedDateTime Z1 = null ؛ if (src == null) {z1 = time.atzone (Zoneid.SystemDefault ()) ؛ } آخر {z1 = time.atzone (src) ؛ } // ZonedDateTime Z2 = Z1.WithSonesAmeInstant (dest) ؛ // التعامل مع المشكلات المتداخلة ساعات طويلة = المدة. Z2 = z2.plushours (ساعات) ؛ system.out.println (dest.getid ()+"يتوافق مع المنطقة الزمنية القياسية:"+getzonedesc (timezone.gettimezone (dest))) ؛ System.out.println ("Target Time Zone"+Dest+"Time"+Z2.Format (DateTimeFormatter.ofpattern ("Yyyy-MM-DD HH: MM: SS"))) ؛ System.out.println ("-------------------") ؛ وقت العودة ؛}الاختبار: حسنًا
Test public void test4 () يلقي استثناء {// من المتوقع ألا يكون في وضح النهار الوقت 2016-03-13 01:59:59 timeDateTime 4 = localDateTime.of (2016 ، 3 ، 13 ، 14 ، 59 ، 59) ؛ getzongtime2 (time4 ، Zoneid.of ("America/New_york")) ؛ // من المتوقع أن يكون في وضح النهار الوقت 2016-03-13 03:00:00 timeDateTime 1 = localDateTime.of (2016 ، 3 ، 13 ، 15 ، 00 ، 00) ؛ getzongtime2 (time1 ، Zoneid.of ("America/new_york")) ؛ // من المتوقع أن يكون في وقت التوفير في وضح النهار 2016-11-06 02:59:59 timeDateTime Time2 = localDateTime.of (2016 ، 11 ، 6 ، 14 ، 59 ، 59) ؛ getzongtime2 (time2 ، ZoneId.of ("America/new_york")) ؛ // من المتوقع ألا يكون ذلك في وقت توفير النهار 2016-11-06 02:00:00 LocalDateTime Time3 = localDateTime.of (2016 ، 11 ، 6 ، 15 ، 00 ، 00) ؛ getzongtime2 (time3 ، Zoneid.of ("America/New_york")) ؛ }نتيجة:
أمريكا/new_york تتوافق مع المنطقة الزمنية القياسية: GMT-5
وقت المنطقة الزمنية المستهدفة أمريكا/new_york 2016-03-13 01:59:59
-------------------------
أمريكا/new_york تتوافق مع المنطقة الزمنية القياسية: GMT-5
وقت المنطقة الزمنية المستهدفة أمريكا/new_york 2016-03-13 03:00:00
-------------------------
أمريكا/new_york تتوافق مع المنطقة الزمنية القياسية: GMT-5
وقت المنطقة الزمنية المستهدفة أمريكا/new_york 2016-11-06 02:59:59
-------------------------
أمريكا/new_york تتوافق مع المنطقة الزمنية القياسية: GMT-5
وقت المنطقة الزمنية المستهدفة أمريكا/new_york 2016-11-06 02:00:00
-------------------------
المشكلة أعلاه والحل لتحويل وقت توفير النهار بناءً على المنطقة الزمنية Java هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.