ইনস্ট্যান্ট এবং লোকালডেটটাইমের মধ্যে পার্থক্য কী?


255

আমি জানি:

  • তাত্ক্ষণিক কম্পিউটারের জন্য বরং "প্রযুক্তিগত" টাইমস্ট্যাম্প উপস্থাপনা (ন্যানোসেকেন্ডস)।
  • লোকালডেটটাইম হ'ল তারিখ / ঘড়ির প্রতিনিধিত্ব মানুষের জন্য সময় অঞ্চলগুলি সহ।

এখনও আইএমও উভয়ই বেশিরভাগ অ্যাপ্লিকেশন ব্যবহারের ক্ষেত্রে টাইপ হিসাবে নেওয়া যেতে পারে। উদাহরণস্বরূপ: বর্তমানে আমি একটি ব্যাচের কাজ চালাচ্ছি যেখানে তারিখের উপর ভিত্তি করে আমার পরবর্তী রান গণনা করা দরকার এবং এই দুটি ধরণের মধ্যে ইনস্ট্যান্ট এবং সময়-অঞ্চল অংশের ন্যানোসেকেন্ডের যথার্থ সুবিধা বাদে আমি কোনও কৌশল / কনস খুঁজে পেতে লড়াই করছি লোকালডেটটাইম)।

আপনি কি কিছু অ্যাপ্লিকেশন উদাহরণের নাম দিতে পারেন, যেখানে কেবল তাত্ক্ষণিক বা লোকালডেটটাইম ব্যবহার করা উচিত?

সম্পাদনা: যথাযথতা এবং সময়-অঞ্চল সম্পর্কিত লোকালডেটটাইম-এর জন্য অপ্রকাশিত ডকুমেন্টগুলি সাবধান করুন


তাত্ক্ষণিক আরও প্রাথমিক, ইউটিসির জন্য মান দীর্ঘ মোড়ক। ব্যাচের মতো ক্রোনের জন্য পছন্দ মতো যৌক্তিক নয়।
জোপ ডিম্বন

37
ভুল সংজ্ঞা। LocalDateTimeনেই না কোন সময় জোন আছে!
তুলসী বাউরক

উত্তর:


828

আধুনিক ও উত্তরাধিকার উভয় ক্ষেত্রে জাভাতে সমস্ত তারিখ-সময়ের ধরণের সারণী

TL; ড

Instantএবং LocalDateTimeদুটি সম্পূর্ণ ভিন্ন প্রাণী: একটি একটি মুহুর্তকে উপস্থাপন করে, অন্যটি তা করে না।

  • Instant একটি মুহূর্ত প্রতিনিধিত্ব করে, সময়রেখার একটি নির্দিষ্ট পয়েন্ট।
  • LocalDateTimeএকটি তারিখ এবং দিনের একটি সময় প্রতিনিধিত্ব করে। তবে টাইম অঞ্চল বা অফসেট-থেকে-ইউটিসির অভাব, এই শ্রেণিটি একটি মুহুর্তের প্রতিনিধিত্ব করতে পারে না । এটি প্রায় 26 থেকে 27 ঘন্টা ব্যাপী সম্ভাব্য মুহুর্তগুলিকে উপস্থাপন করে , সারা বিশ্বের সর্বকালের জোনের পরিসর।

ভুল অনুমান

LocalDateTime বরং তারিখ / ঘড়ির প্রতিনিধিত্ব মানুষের জন্য সময় অঞ্চলগুলি সহ।

আপনার বিবৃতিটি ভুল: A LocalDateTimeএর কোনও সময় অঞ্চল নেই । টাইম জোন না থাকা এই শ্রেণীর পুরো পয়েন্ট।

এই শ্রেণীর 'ডকের উদ্ধৃতি দিতে:

এই শ্রেণিটি কোনও সময়-অঞ্চল সংরক্ষণ করে না বা উপস্থাপন করে না। পরিবর্তে, এটি একটি তারিখের বিবরণ, জন্মদিনের জন্য ব্যবহৃত হিসাবে, স্থানীয় সময়ের সাথে মিলিতভাবে দেয়ালের ঘড়িতে দেখা যায়। এটি অফসেট বা সময় অঞ্চল হিসাবে অতিরিক্ত তথ্য ছাড়া সময়রেখায় তাত্ক্ষণিকভাবে প্রতিনিধিত্ব করতে পারে না।

এর Local…অর্থ "জোনড নয়, অফসেট নেই"

Instant

এখানে চিত্র বর্ণনা লিখুন

একটি Instantমধ্যে টাইমলাইনে একটি মুহূর্ত ইউটিসি , একটি গণনা ন্যানোসেকেন্ড 1970 ইউটিসি (মূলত মোদ্দা কথা বিস্তারিত জানার জন্য বর্গ ডক দেখুন) প্রথম মুহূর্ত কাল থেকে। যেহেতু আপনার বেশিরভাগ ব্যবসায়িক যুক্তি, ডেটা সঞ্চয়স্থান এবং ডেটা এক্সচেঞ্জটি ইউটিসিতে হওয়া উচিত, এটি প্রায়শই ব্যবহৃত হয় y

Instant instant = Instant.now() ;  // Capture the current moment in UTC.

OffsetDateTime

এখানে চিত্র বর্ণনা লিখুন

শ্রেণীর OffsetDateTimeশ্রেণিটি ইউটিসির পিছনে বা পিছনে কিছু সংখ্যক ঘন্টা-মিনিট-সেকেন্ডের প্রসঙ্গে একটি তারিখ এবং সময় হিসাবে একটি মুহূর্তকে উপস্থাপন করে। অফসেটের পরিমাণ, ঘন্টা-মিনিট-সেকেন্ডের সংখ্যা, ZoneOffsetশ্রেণি দ্বারা প্রতিনিধিত্ব করা হয় ।

ঘণ্টা-মিনিট-সেকেন্ড শূন্য সংখ্যা হয়, তাহলে একটি OffsetDateTimeইউটিসি একটি মুহূর্ত একটি হিসাবে একই প্রতিনিধিত্ব করে Instant

ZoneOffset

এখানে চিত্র বর্ণনা লিখুন

ZoneOffsetবর্গ প্রতিনিধিত্ব করে একটি অফসেট-ইউটিসি থেকে , ইউটিসি এগিয়ে বা ইউটিসি পিছনে ঘণ্টা-মিনিট-সেকেন্ড একটি সংখ্যা।

ZoneOffsetকেবল কয়েক ঘন্টা-মিনিট-সেকেন্ডের, আর কিছুই নয়। একটি জোন আরও অনেক কিছু, নাম এবং অফসেটে পরিবর্তনের ইতিহাস রয়েছে। সুতরাং একটি জোন ব্যবহার করা সর্বদা নিখরচায় অফসেট ব্যবহার করা পছন্দনীয়।

ZoneId

এখানে চিত্র বর্ণনা লিখুন

একটি সময় অঞ্চলZoneId শ্রেণীর দ্বারা প্রতিনিধিত্ব করা হয় ।

উদাহরণস্বরূপ, মন্ট্রিয়ালের চেয়ে প্যারিসে একটি নতুন দিন শুরুর দিকে । সুতরাং আমাদের প্রদত্ত অঞ্চলের জন্য দুপুরের (যখন সূর্য সরাসরি উপরিভাগে থাকে) আরও ভাল প্রতিফলিত করার জন্য আমাদের ঘড়ির হাতগুলি সরানো দরকার । পশ্চিম ইউরোপ / আফ্রিকার ইউটিসি লাইন থেকে আরও দূরে পূর্ব / পশ্চিম দিকে অফসেটটি বৃহত্তর।

একটি সময় অঞ্চল হ'ল স্থানীয় সম্প্রদায় বা অঞ্চল দ্বারা অনুশীলন অনুসারে সামঞ্জস্যতা এবং ব্যতিক্রমগুলি পরিচালনা করার নিয়মের একটি সেট। ডায়ালাইট সেভিং টাইম (ডিএসটি) নামে পরিচিত সর্ব-অতি-জনপ্রিয় পাগলির মধ্যে সর্বাধিক প্রচলিত অসংগতি ।

একটি সময় অঞ্চলে অতীতের বিধি, বর্তমান বিধি এবং নিকট ভবিষ্যতের জন্য নিশ্চিত হওয়া নিয়মের ইতিহাস রয়েছে।

এই বিধিগুলি আপনার প্রত্যাশার চেয়ে প্রায়শই পরিবর্তন হয়। আপনার তারিখ-সময় গ্রন্থাগারের নিয়মগুলি অবশ্যই 'tz' ডাটাবেসের একটি অনুলিপি আপ টু ডেট রাখতে ভুলবেন না। জাভা 8-তে অর-আপ-টু-ডেট রাখা এখনকার চেয়ে সহজ আরও রয়েছে ওরাকল একটি টাইমজোন আপডেটার সরঞ্জাম প্রকাশের মাধ্যমে ।

একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে Continent/Regionযেমন America/Montreal, Africa/Casablancaঅথবা Pacific/Auckland। কখনও যেমন 2-4 চিঠি সংক্ষেপ ব্যবহার ESTবা ISTহিসাবে তারা না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।

সময় অঞ্চল = অফসেট + সামঞ্জস্যের নিয়ম

ZoneId z = ZoneId.of( Africa/Tunis ) ; 

ZonedDateTime

এখানে চিত্র বর্ণনা লিখুন

নির্ধারিত সহ ZonedDateTimeধারণা হিসাবে ভাবুন ।InstantZoneId

জোনেডেটটাইম = (তাত্ক্ষণিক + জোনআইডি)

কোনও নির্দিষ্ট অঞ্চলের (একটি সময় অঞ্চল) লোকেরা ব্যবহৃত প্রাচীর-ঘড়ির সময় হিসাবে দেখা বর্তমান মুহুর্তটি ক্যাপচার করতে:

ZonedDateTime zdt = ZonedDateTime.now( z ) ;  // Pass a `ZoneId` object such as `ZoneId.of( "Europe/Paris" )`. 

আপনার প্রায় সমস্ত ব্যাকএন্ড, ডাটাবেস, ব্যবসায়িক যুক্তি, ডেটা অধ্যবসায়, ডেটা এক্সচেঞ্জ সবই ইউটিসিতে থাকা উচিত। তবে ব্যবহারকারীদের কাছে উপস্থাপনের জন্য আপনাকে ব্যবহারকারীর দ্বারা প্রত্যাশিত একটি সময় অঞ্চলে সমন্বয় করতে হবে। ZonedDateTimeক্লাস এবং বিন্যাসক ক্লাসগুলির উদ্দেশ্যটি সেই তারিখের সময়ের মানগুলির স্ট্রিং উপস্থাপনা তৈরি করতে ব্যবহৃত হয়।

ZonedDateTime zdt = instant.atZone( z ) ;
String output = zdt.toString() ;                 // Standard ISO 8601 format.

আপনি স্থানীয় ফর্ম্যাট ব্যবহার করে পাঠ্য উত্পন্ন করতে পারেন DateTimeFormatter

DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( Locale.CANADA_FRENCH ) ; 
String outputFormatted = zdt.format( f ) ;

মার্দি 30 এপ্রিল 2019 à 23 এইচ 22 মিনিট 55 হিউরে ডি এল ইন্ডে

LocalDate, LocalTime,LocalDateTime

একটি <কোড> স্থানীয় তারিখ </ কোড> এর জন্য কেবল একটি ক্যালেন্ডার দেখায় ডায়াগ্রাম।

<কোড> লোকালটাইম </ কোড> এর জন্য কেবল একটি ঘড়ি দেখায় ডায়াগ্রাম।

<কোড> লোকালডেটটাইম </ কোড> এর জন্য একটি ক্যালেন্ডার প্লাস ক্লক দেখায় ডায়াগ্রাম।

"স্থানীয়" তারিখ সময় ক্লাস, LocalDateTime, LocalDate, LocalTime, Critter একটি ভিন্ন ধরনের হয়। এগুলি কোনও একটি এলাকা বা সময় অঞ্চলে আবদ্ধ নয়। এগুলি টাইমলাইনে আবদ্ধ নয়। আপনি সময়রেখায় একটি বিন্দু খুঁজে পেতে কোনও অঞ্চলে এগুলি প্রয়োগ না করা পর্যন্ত তাদের কোনও আসল অর্থ নেই

এই শ্রেণীর নামগুলিতে "স্থানীয়" শব্দটি নিরবচ্ছিন্নদের পক্ষে পাল্টা স্বজ্ঞাত হতে পারে। শব্দ মানে কোন স্থান, বা যে স্থান, কিন্তু না একটি নির্দিষ্ট অঞ্চল।

সুতরাং ব্যবসায়ের অ্যাপ্লিকেশনগুলির জন্য, "স্থানীয়" প্রকারগুলি প্রায়শই ব্যবহৃত হয় না কারণ এগুলি কোনও সম্ভাব্য তারিখ বা সময় সম্পর্কে সাধারণ ধারণা উপস্থাপন করে কারণ টাইমলাইনে নির্দিষ্ট মুহুর্ত নয়। ব্যবসায়িক অ্যাপ্লিকেশনগুলিতে চালানটি আসার সঠিক মুহুর্ত, পরিবহণের জন্য প্রেরিত পণ্য, কোনও কর্মচারী নিয়োগ দেওয়া হয়েছিল, বা ট্যাক্সি গ্যারেজটি ছেড়ে গেছে সে সম্পর্কে যত্নবান হয়ে থাকে। তাই ব্যবসা অ্যাপ্লিকেশন ডেভেলপারদের ব্যবহার Instantএবং ZonedDateTimeক্লাস হিসেবে সবচেয়ে বেশি যে।

তাহলে আমরা কখন ব্যবহার করব LocalDateTime? তিনটি পরিস্থিতিতে: যেখানে আমরা একাধিক অবস্থানগুলিতে একটি নির্দিষ্ট তারিখ এবং সময়ের-সময় প্রয়োগ করতে চাই, যেখানে আমরা অ্যাপয়েন্টমেন্টগুলি বুকিং করছি, বা যেখানে আমাদের একটি নির্ধারিত এখনও নির্ধারিত সময় অঞ্চল রয়েছে। লক্ষ্য করুন যে এই তিনটি মামলার কোনওটিই টাইমলাইনের একটি নির্দিষ্ট নির্দিষ্ট পয়েন্ট নয়, এর কোনওটিই একটি মুহুর্ত নয়।

দিনের এক সময়ের, একাধিক মুহুর্ত

কখনও কখনও আমরা একটি নির্দিষ্ট তারিখের একটি নির্দিষ্ট সময়ের অফুরন্ত প্রতিনিধিত্ব করতে চাই, তবে সময় অঞ্চল জুড়ে একাধিক এলাকায় এটি প্রয়োগ করতে চাই।

উদাহরণস্বরূপ, "ক্রিসমাস 25 ডিসেম্বর 2015 এর মধ্যরাতে শুরু হয়" একটি LocalDateTime। মন্ট্রিয়ালের চেয়ে প্যারিসে বিভিন্ন মুহুর্তে মধ্যরাতের ধর্মঘট, এবং সিয়াটলে এবং অকল্যান্ডে আবার আলাদা ।

LocalDate ld = LocalDate.of( 2018 , Month.DECEMBER , 25 ) ;
LocalTime lt = LocalTime.MIN ;   // 00:00:00
LocalTime ldt = LocalDateTime.of( ld , lt ) ;  // Xmas morning anywhere. 

আরেকটি উদাহরণ, "অ্যাকমে কোম্পানির একটি নীতি আছে যে বিশ্বব্যাপী এর প্রতিটি ফ্যাক্টরির মধ্যাহ্নভোজ 12:30 টায় শুরু হয়" ক LocalTime। আসল অর্থ বোঝার জন্য আপনাকে স্টুটগার্ট কারখানায় 12:30 বা রাবাত কারখানায় 12:30 বা সিডনি ফ্যাক্টরিতে 12:30 এর মুহূর্তটি চিত্রিত করার জন্য টাইমলাইনে এটি প্রয়োগ করতে হবে ।

অ্যাপয়েন্টমেন্ট বুকিং

ব্যবহারের আরেকটি পরিস্থিতি LocalDateTimeহ'ল ভবিষ্যতের ইভেন্টগুলি বুকিংয়ের জন্য (উদা: দন্ত বিশেষজ্ঞের অ্যাপয়েন্টমেন্ট)। এই অ্যাপয়েন্টমেন্টগুলি ভবিষ্যতে অনেক বেশি হতে পারে যে আপনি রাজনীতিবিদদের সময় অঞ্চলটিকে নতুন করে সংজ্ঞায়িত করার ঝুঁকিপূর্ণ। রাজনীতিবিদরা প্রায়শই সামান্য আগুন জ্বালান, এমনকি কোনও সতর্কতাও দেন না। যদি রাজনীতিবিদরা কীভাবে ঘড়ির সাথে খেলতে পারেন নির্বিশেষে আপনার যদি আগামী ২৩ শে জানুয়ারী "3 টা প্রধানমন্ত্রী" এর অর্থ হয়, তবে আপনি একটি মুহূর্তও রেকর্ড করতে পারবেন না - যদি সেই অঞ্চলটি ডাইটলাইট সেভিংয়ের সময়টিকে অবলম্বন করে বা বাদ দেয় তবে 3 মিনিটের সময় 2 বা 4 মিনিটে পরিণত হতে পারে, উদাহরণ স্বরূপ.

অ্যাপয়েন্টমেন্টের জন্য, আলাদাভাবে রাখা একটি LocalDateTimeএবং একটি সঞ্চয় করুন ZoneId। পরে, তফসিল তৈরি করার সময়, অন-ফ্লাই LocalDateTime::atZone( ZoneId )কোনও ZonedDateTimeঅবজেক্ট উত্পন্ন করার জন্য কল করে একটি মুহূর্ত নির্ধারণ করে ।

ZonedDateTime zdt = ldt.atZone( z ) ;  // Given a date, a time-of-day, and a time zone, determine a moment, a point on the timeline.

প্রয়োজনে আপনি ইউটিসিতে সামঞ্জস্য করতে পারেন। এর Instantথেকে একটি বের করুন ZonedDateTime

Instant instant = zdt.toInstant() ;  // Adjust from some zone to UTC. Same moment, same point on the timeline, different wall-clock time.

অজানা অঞ্চল

কিছু লোক এমন LocalDateTimeপরিস্থিতিতে ব্যবহার করতে পারে যেখানে সময় অঞ্চল বা অফসেট অজানা।

আমি এই কেসটিকে অনুচিত এবং বুদ্ধিমান বিবেচনা করি। যদি কোনও অঞ্চল বা অফসেট উদ্দেশ্যযুক্ত তবে নির্ধারিত হয়, আপনার কাছে খারাপ ডেটা রয়েছে। এটি উদ্দেশ্যমূলক মুদ্রা না জেনে কোনও পণ্যের মূল্য সঞ্চয় করার মতো হবে। ভালো বুদ্ধি নই.

সমস্ত তারিখ-সময় প্রকার

সম্পূর্ণতার জন্য, এখানে জাভাতে আধুনিক এবং উত্তরাধিকারী এবং এসকিউএল স্ট্যান্ডার্ড দ্বারা সংজ্ঞায়িত সমস্ত সম্ভাব্য তারিখ-সময়ের ধরণের একটি টেবিল রয়েছে। এটি বৃহত্তর প্রসঙ্গে Instant& LocalDateTimeক্লাসগুলি স্থাপনে সহায়তা করতে পারে ।

জাভাতে সমস্ত তারিখ-সময়ের ধরণের সারণী (উভয় আধুনিক ও প্রাচীনত্ব) পাশাপাশি এসকিউএল স্ট্যান্ডার্ড।

জেডিবিসি ৪.২ ডিজাইনে জাভা দলটি করা অদ্ভুত পছন্দগুলি লক্ষ্য করুন। তারা সব জাভা.টাইম সময় সমর্থন করে ... দুটি সর্বাধিক ব্যবহৃত ক্লাস বাদে: Instantএবং ZonedDateTime

তবে চিন্তার কিছু নেই। আমরা সহজেই পিছনে পিছনে রূপান্তর করতে পারি।

রূপান্তরিত হচ্ছে Instant

// Storing
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;
myPreparedStatement.setObject(  , odt ) ;

// Retrieving
OffsetDateTime odt = myResultSet.getObject(  , OffsetDateTime.class ) ;
Instant instant = odt.toInstant() ;

রূপান্তরিত হচ্ছে ZonedDateTime

// Storing
OffsetDateTime odt = zdt.toOffsetDateTime() ;
myPreparedStatement.setObject(  , odt ) ;

// Retrieving
OffsetDateTime odt = myResultSet.getObject(  , OffsetDateTime.class ) ;
ZoneId z = ZoneId.of( "Asia/Kolkata" ) ;
ZonedDateTime zdt = odt.atZone( z ) ; 

জাভা.টাইম সম্পর্কে

Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.DateCalendarSimpleDateFormat

Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।

আরও জানতে, ওরাকল টিউটোরিয়াল দেখুন । এবং অনেক উদাহরণ এবং ব্যাখ্যার জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310

আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই ।java.sql.*

জাভা.টাইম ক্লাস কোথায় পাবেন?

জাভা বা অ্যান্ড্রয়েডের কোন সংস্করণটি ব্যবহার করবে তা জাভা.টাইম লাইব্রেরির সারণী

ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval, YearWeek, YearQuarter, এবং আরো


39
দুর্দান্ত উত্তর। আমি মনে করি Localনামকরণ থেকে কিছু বিভ্রান্তি (অন্তত আমার) আসে । Localআমি যেখানে আছি এবং যখন আমি (?!) এর সাথে সম্পর্কিত তার অন্তর্নিহিততা , যা আমাকে বিশ্বাস করতে পরিচালিত করে যে এটি আসলে কী ZonedDateTimeহবে।
এমকোবিট

4
হ্যাঁ এটা বিভ্রান্তিকর। এ কারণেই জাভা.টাইম DateTimeতার পূর্বসূরী জোদা-টাইম (উত্পাদক ZonedDateTime) দ্বারা ব্যবহৃত "ক্লাস" নামটি "স্থানীয়" শ্রেণীর পার্থক্যের উপর চাপ দেওয়ার জন্য চতুরতার সাথে 'জোনেড' শব্দটি যুক্ত করেছিলেন । "" কিছু নির্দিষ্ট জায়গায় প্রয়োগ করা দরকার "এর জন্য" স্থানীয় "নামটি শর্টহ্যান্ড হিসাবে ভাবেন।
তুলসিল বাউরক

2
শব্দের সাথে প্রিফিক্সিং জাভা.ইটিল Localপ্যাকেজ থেকে পৃথক করার উপায়ও হতে পারে, যদিও আমি মনে করি যে আরও ভাল শব্দ পছন্দ হতে পারে।
vphilipnyc

2
বিপরীতে @ সিমোনহ ... যখন নতুন কর্মচারী তার / তার ভাড়া সংক্রান্ত কাগজপত্রগুলিতে স্বাক্ষর করে যা জীবন বীমা সহ তাদের সুবিধাগুলি সংজ্ঞায়িত করে এবং তারপরে সেই নতুন ভাড়াটি কেবলমাত্র একটি ট্রাকে ধাক্কা মেরে এবং মারা যাওয়ার জন্য একটি কফির জন্য বাইরের পদক্ষেপ নেয়, সেখানে অনেক লোক এমন হয় হিউম্যান রিসোর্স ম্যানেজার, বীমা এজেন্ট এবং অ্যাটর্নি হিসাবে যারা নতুন কর্মসংস্থান কার্যকর হয়েছে তখন সুনির্দিষ্ট মুহুর্তটি জানতে চাইছেন।
তুলসী বাউরকে

2
@ সিমোনহ হ্যাঁ, এমন কিছু ক্ষেত্রে রয়েছে যেখানে "স্থানীয়" তারিখের সময়টি উপযুক্ত। আমার উত্তরে বর্ণিত ব্যক্তিদের পাশাপাশি, ব্যবসায়ের আরও একটি সাধারণ ক্ষেত্রে ভবিষ্যতে কয়েক মাসেরও বেশি সময় ধরে নিয়োগের জন্য হ'ল যথেষ্টই যে রাজনীতিবিদরা সময় অঞ্চল নিয়মগুলি পরিবর্তন করতে পারেন, সাধারণত সামান্য আগাম সতর্কতার সাথে। রাজনীতিবিদরা প্রায়শই এই পরিবর্তনগুলি করেন যেমন ডাইটলাইট সেভিং টাইম (ডিএসটি) চালু / বন্ধ করার সময় তারিখ পরিবর্তন করা বা ডিএসটি স্থায়ীভাবে / বন্ধ থাকুন।
তুলসী বাউরক

20

একটি প্রধান পার্থক্য Localঅংশ LocalDateTime। আপনি যদি জার্মানিতে থাকেন এবং একটি LocalDateTimeউদাহরণ তৈরি করেন এবং অন্য কেউ যুক্তরাষ্ট্রে থাকেন এবং একই মুহূর্তে অন্য একটি উদাহরণ তৈরি করেন (ঘড়িগুলি সঠিকভাবে সেট করা থাকে তবে) সেই বস্তুর মান আসলে আলাদা হবে। এটি প্রযোজ্য নয় Instant, যা সময় অঞ্চল থেকে স্বাধীনভাবে গণনা করা হয়।

LocalDateTimeসময় অঞ্চল ছাড়া তারিখ এবং সময় সঞ্চয় করে তবে এর প্রাথমিক মান টাইমজোন নির্ভর। Instantনা হয়।

তদতিরিক্ত, LocalDateTimeদিন, ঘন্টা, মাসের মতো তারিখের উপাদানগুলি পরিচালনা করার জন্য পদ্ধতি সরবরাহ করে। একটি Instantনা।

তাত্ক্ষণিকের ন্যানোসেকেন্ড যথার্থ সুবিধা এবং লোকালডেটটাইমের টাইম-জোন অংশ ব্যতীত

উভয় শ্রেণীর একই স্পষ্টতা আছে। LocalDateTimeটাইমজোন সংরক্ষণ করে না জাভাডোকগুলি পুরোপুরি পড়ুন, কারণ আপনি এই জাতীয় অবৈধ অনুমানগুলি সহ একটি বড় ভুল করতে পারেন: তাত্ক্ষণিক এবং স্থানীয় তারিখটাইম


অঞ্চল + নির্ভুলতার অংশটি ভুল করে পড়ার জন্য দুঃখিত। উপরের পোস্ট থেকে পুনরাবৃত্তি করার জন্য দুঃখিত: একটি একক সময়-অঞ্চল অ্যাপ্লিকেশন বিবেচনা করে, কোন ব্যবহারের ক্ষেত্রে আপনি লোকালডেটটাইম বা তার বিপরীতে সমর্থন করবেন?
ম্যানুয়েল আলডানা

1
যখনই আমার তারিখ এবং / অথবা সময় প্রয়োজন হবে আমি লোকালডেটটাইম নেব। ঘন্টা, মিনিট, বা তাই। আমি মৃত্যুদন্ড কার্যকর করার সময়গুলি পরিমাপ করার জন্য তাত্ক্ষণিক ব্যবহার করব, উদাহরণস্বরূপ, বা তার পরে এবং সেখানে ঘটনার কোনও অভ্যন্তরীণ ক্ষেত্র সংরক্ষণ করব। আপনার ক্ষেত্রে হিসাবে, পরবর্তী রান গণনা করা? লোকালডেটটাইম উপযুক্ত মনে হয় তবে এটি একটি মতামত। যেমন আপনি বলেছেন, উভয় ব্যবহার করা যেতে পারে।
দরিউজ

আপনি আরও বিস্তারিত বলতে পারেন LocalDateTime stores date and time without timezone, but it's initial value is timezone dependent? প্রাথমিক মান কী এবং এটি কীভাবে টাইমজোন নির্ভর? ধন্যবাদ।
সর্বাধিক

12

আপনি সম্পর্কে ভুল LocalDateTime: এটি কোনও সময়-অঞ্চলের তথ্য সঞ্চয় করে না এবং এতে ন্যানোসেকেন্ডের যথার্থতা রয়েছে। জাভাডোক (জোর খনি) এর উদ্ধৃতি:

আইএসও -8601 ক্যালেন্ডার সিস্টেমে টাইম-জোন ছাড়াই একটি তারিখ-সময় , যেমন 2007-12-03T10: 15: 30।

লোকালডেটটাইম একটি অপরিবর্তনীয় তারিখ-সময় অবজেক্ট যা একটি তারিখ-সময়কে প্রতিনিধিত্ব করে, প্রায়শই বছর-মাস-দিন-ঘন্টা-ঘন্টা-মিনিট-সেকেন্ড হিসাবে দেখা হয়। বছরের অন্যান্য দিন, সপ্তাহের দিন এবং সপ্তাহের-বছরের মতো অন্যান্য তারিখ এবং সময় ক্ষেত্রগুলিও অ্যাক্সেস করা যায়। সময় ন্যানোসেকেন্ড যথার্থতার প্রতিনিধিত্ব করে । উদাহরণস্বরূপ, "2 শে অক্টোবর 2007 এ 13: 45.30.123456789" মান একটি লোকালডেটটাইমে সংরক্ষণ করা যেতে পারে।

Instantউভয়ের মধ্যে পার্থক্যটি হ'ল ইপচ (01-01-1970) থেকে অফসেট উপস্থাপন করে এবং যেমনটি সময় লাইনে একটি নির্দিষ্ট তাত্ক্ষণিকতার প্রতিনিধিত্ব করে। Instantপৃথিবীর দুটি পৃথক স্থানে একই মুহুর্তে তৈরি দুটি বস্তুর ঠিক একই মান হবে।


একটি একক সময়-অঞ্চল অ্যাপ্লিকেশন বিবেচনা করে, কোন ব্যবহারের ক্ষেত্রে আপনি লোকালডেটটাইম বা তার বিপরীতে সমর্থন করবেন?
ম্যানুয়েল আলডানা

3
@ মানুয়েলদানা এটি আরও স্বাদের বিষয়। আমি লোকালডেটটাইমটিকে ব্যবহারকারী-সম্পর্কিত (জন্মদিন ...) এবং মেশিন সম্পর্কিত কোনও কিছুর জন্য ঝটপট (মৃত্যুর সময় ...) পছন্দ করতাম।
টুনাকি

2
@ মানুয়েলদানা একটিমাত্র টাইম জোন অ্যাপটি অস্তিত্বহীন থাকলে বিরল। আপনি আপনার স্থানীয় বারোক মিউজিক ক্লাবের জন্য চাপ দেওয়া একটি ছোট্ট অ্যাপ্লিকেশনটির জন্য সময় অঞ্চলগুলি উপেক্ষা করে পালিয়ে যেতে পারেন। তবে ভ্রমণকারীদের (এবং সময় অঞ্চলগুলি ক্রস) করার জন্য আপনার কোনও ইভেন্ট পোস্ট করার সাথে সাথে তারা সেই ডেটাটি একটি টাইম জোনে বাঁধা চাইবে যাতে তাদের ক্যালেন্ডার অ্যাপটি প্রয়োজনমতো সামঞ্জস্য করতে পারে। আমি আপনাকে আপনার সমস্ত অ্যাপ্লিকেশনগুলিতে টাইম জোনের সাথে সঠিকভাবে কাজ করতে শিখতে চাই।
তুলসী বাউরক

@ টুনাকি আপনার শেষ অনুচ্ছেদে 'অফসেট' শব্দটির ব্যবহার বিভ্রান্ত করছে। তারিখের সময়কাজে এই শব্দটির একটি নির্দিষ্ট অর্থ রয়েছে, সুতরাং এটি এখানে এই প্রসঙ্গে ব্যবহার করা অসফল হতে পারে।
তুলিল বাউরক

0

Instant প্রাইম মেরিডিয়ান (গ্রিনউইচ) এর সাথে সময়ের সাথে মিল রয়েছে।

যদিও LocalDateTimeওএস টাইম জোনের সেটিংসের সাথে সম্পর্কিত এবং

অফসেট বা সময় অঞ্চল হিসাবে অতিরিক্ত তথ্য ছাড়া তাত্ক্ষণিকভাবে প্রতিনিধিত্ব করতে পারে না।


2
তাত্ক্ষণিকটি ইউটিসি নয় জিএমটি ভিত্তিক।
টর্স্টেন ওজাপার্ভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.