জোদা টাইম বনাম জাভা টাইম


19

যদিও জোদা মানক জাভা সময়ের চেয়ে সমৃদ্ধ এবং আরও পরিশীলিত বৈশিষ্ট্যযুক্ত তবে এটি সর্বদা ব্যবহারের পক্ষে সেরা জিনিস নাও হতে পারে। আমার যদি কোনও জাভা কোডে জোডা টাইম বা জাভা টাইম ব্যবহার করা উচিত তবে আমি কীভাবে সিদ্ধান্ত নেব?

এমন কোনও নির্দেশিকা আছে যা আমাদের প্রয়োজনীয়তার উপর নির্ভর করে সঠিকটি কীভাবে বাছাই করতে পারে তা আমাদের জানায়?


5
জাভা 8 এ অন্তর্ভুক্ত করা নতুন তারিখ এবং সময় এপিআই ব্যবহার করে উভয় বিশ্বের সেরা পান । এটি জোদা টাইমের দ্বারা প্রচুরভাবে প্রভাবিত। প্রকৃতপক্ষে প্রধান লেখক হলেন জোদা সময়ের লেখক স্টিফেন কোলবর্ন।
জোছিম সউর

1
@ জোচিমসৌয়ার এটি চূড়ান্ত প্রকাশে হাজির হয়েছে নাকি জাভা 8 চালু হবে এমনটি ঘটবে?
m3th0dman

@ এম থ্রিথডম্যান: এটি চূড়ান্ত জাভা ৮ রিলিজের অন্তর্ভুক্ত হবে, এটি এখনও প্রকাশ করা হয়নি। জিএ বর্তমানে 2013-09-09-এ নির্ধারিত হয়েছে
জোছিম সউর 11

জোডা-টাইম এবং মূল জাভা তারিখ-সময় ক্লাস উভয়ই জাভা.টাইম ক্লাসগুলি জাভা 8, জাভা 9 এবং তার পরে তৈরি করেছে।
তুলসী বাউরক

উত্তর:


29

জাভা টাইম জাভা টাইম লাইব্রেরির তুলনায় এমন একটি উন্নতি যা নিম্নলিখিত ব্যতিক্রমগুলি বাদ দিয়ে প্রায় সর্বদা সঠিক পছন্দ হয়:

  1. যখন আপনার প্রকল্পে তৃতীয় পক্ষের নির্ভরতা যুক্ত করা কঠিন বা অনাকাঙ্ক্ষিত হয়

  2. যখন কোনও সার্বজনীন ইন্টারফেসে এর ব্যবহার সমস্যার কারণ হতে পারে, যেমন জাভা এবং জোদা উভয় ক্ষেত্রেই পরিচালনা করতে একটি ওআরএম প্রাপ্তি

তবে, ২ এর ক্ষেত্রে) যদি সম্ভব হয় তবে অভ্যন্তরীণভাবে জোদা ব্যবহার করা আরও ভাল।

উপরের জিনিসগুলি মাথায় রাখার মতো তবে এটি বিরল হওয়া উচিত। সন্দেহ হলে জোদার সাথে যান with


"অভ্যন্তরীণভাবে জোদা ব্যবহার করুন" এর অর্থ দয়া করে আমাকে বলুন। আমি একটি শিক্ষানবিস এবং আমি এই সমস্ত জিনিস জানি না।
জেডি নাইট

5
@ জেডি নাইট: এর অর্থ হল অ্যাপ্লিকেশনটি জোদাটিকে তার নিজস্ব যুক্তির জন্য ব্যবহার করে এবং যখনই এটির প্রয়োজন হয় এমন কোনও বাহ্যিক সিস্টেমের সাথে যোগাযোগ করে তখনই java.util.Date- এ রূপান্তর করে।
মাইকেল বর্গওয়ার্ট

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

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

13

নোট করুন যে জোদা-টাইম ওয়েবসাইটে এটি উল্লেখ করেছে:

জাভা এসই 8 এর পূর্বে স্ট্যান্ডার্ড তারিখ এবং সময় শ্রেণিগুলি দরিদ্র। এই সমস্যাটিকে সামনের দিকে এগিয়ে নিয়ে, জোদা-টাইম জাভা-র জন্য ডি-ফ্যাক্টো স্ট্যান্ডার্ড তারিখ এবং সময় গ্রন্থাগারে পরিণত হয়েছে। নোট করুন যে জাভা এসই 8 এর পরে, ব্যবহারকারীদের জাভা.টাইম (জেএসআর -310) এ মাইগ্রেট করতে বলা হয়েছে।

জোদা-টাইমের প্রধান অবদানকারী , জোডস্টেফেন , জেএসআর -310-এর প্রধান অবদানকারী, যেমনটি http://www.threeten.org/ এর সাথে যুক্ত গিটহাবের সংগ্রহস্থলে দেখা যায় । যাইহোক, জোডস্টেফেনের একটি এসও হ্যান্ডেল রয়েছে ...

আমি মনে করি এটি নিরাপদ যে জাভা 8 এর পরে দেওয়া নতুন তারিখ এবং সময় এপিআই দিয়ে আমরা স্বাচ্ছন্দ্য এবং নিরাপদ বোধ করতে পারি state

কিছু অতিরিক্ত রেফারেন্স:


12

জাভা স্ট্যান্ডার্ড ডেট এপিআইটি এতটাই মৌলিকভাবে ভেঙে গেছে যে আমি প্রায়শই JVM এর লাইব্রেরি এক্সটেনশনে জোদা সময় যুক্ত করার বিষয়টি বিবেচনা করেছি যাতে এটি জাভা এপিআইর বাকী অংশের সাথে ডিফল্টরূপে শ্রেণিপথে লোড হয়।

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

পরবর্তীকালে স্ট্যান্ডার্ড ডেট এপিআই স্বজ্ঞাত নয়, যেখানে কয়েক সপ্তাহের মধ্যেই তরল জোদা এপিআই নেওয়া যেতে পারে। দুই মাইল দূরে দ্বীপে পৌঁছানোর চেষ্টা করার সাথে আপনার উপমাটি নীচের মতো।

1) একটি মোটরবোট যা আপনাকে কেবল 6 মিনিটের মধ্যে দ্বীপে পৌঁছে দেবে।

অথবা ...

2) একটি অস্থায়ী বাঁশের ভেলাটি হ্যারিকেন চলাকালীন লাইনগুলির সাথে একসাথে বেঁধে দেওয়া হয়েছিল যার পাগল লোকটি যার সবচেয়ে ভাল বন্ধু ভলিবল।

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

যদি আপনার ইচ্ছাটি যদি আপনার অ্যাপ্লিকেশনটির ডেস্কটপ অ্যাপ্লিকেশন হিসাবে একটি সংক্ষিপ্ত পদচিহ্ন থাকে যা এটি ডিস্ক স্পেসের সাথে সম্পর্কিত হয় তবে সম্ভবত জাভা সঠিক ভাষা পছন্দ নয়।


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

8

আরও একটি বিষয়: জাভা-টাইম (অর্থাত্ Date) থ্রেডসেফ নয় তবে জোডাটাইম। সুতরাং প্রয়োজনীয়তা পছন্দ হলে জোদাটাইম পছন্দ করা হয়

  • সাধারণ সংস্থানগুলিতে অ্যাক্সেস করা মাল্টিথ্রেডেড এনভায়রনমেন্ট
  • পরিস্থিতিগুলির মতো সেন্ট্রালাইজড টাইম সিঙ্ক্রোনাইজেশন

অন্যথায় সাধারণ অ্যাপ্লিকেশনগুলির জন্য জাভা-টাইম ঠিক আছে।


এমনকি ডেটটাইমও থ্রেডসেফ নয়, তাই না? আমি ভুল হতে থাকলে আমাকে সংশোধন করুন।
বিনতেশ

3
ডেটটাইম ক্লাস সহ জোড় লাইব্রেরির বেশিরভাগ অংশ অপরিবর্তনীয় এবং তাই থ্রেড-নিরাপদ। তবে কয়েকটি পরিবর্তনীয় ক্লাস রয়েছে যা থ্রেড-নিরাপদ নয়। Joda-time.sourceforge.net/faq.html# থ্রেডিং দেখুন ।
রবার্ট জনসন

1
java.timeঅপরিবর্তনীয়তার মাধ্যমে থ্রেড সুরক্ষা প্রয়োগ করা হয়। স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / 9303532/ … দেখুন । এটি সহজ এবং জটিল অ্যাপ্লিকেশন উভয়ের জন্য ভাল কাজ করে। এমনকি এপিআই ডকটিও বলেছে যে "সমস্ত শ্রেণি অপরিবর্তনীয় এবং থ্রেড-নিরাপদ" (আক্ষরিকভাবে দ্বিতীয় অনুচ্ছেদে উদ্ধৃত)। java.utilঅন্যদিকে পুরানো ক্লাসগুলির বিভিন্ন বিষয় রয়েছে। আমি বুঝতে পারি যে এই উত্তরটি উত্তরটিকে বোঝায় তবে এখনই এই পার্থক্যটি করা গুরুত্বপূর্ণ।
YoYo

অপরিবর্তনীয় মান হিসাবে তারিখের সময়কে উপস্থাপন করা কেবল উন্মাদ নয়। আমি জানি এটি এখনই স্থির হয়ে গেছে তবে তারা পৃথিবীতে কী ভাবছিল?
আলুয়ান হাদাদ ২

2

Java.time ফ্রেমওয়ার্ক প্রতিস্থাপন উভয় উত্তরাধিকার তারিখ-সময় ক্লাস ও Joda-টাইম

আপডেট: জাভার প্রাথমিক সংস্করণগুলিতে পাঠানো পুরানো তারিখ-কাল ক্লাসগুলি এখন উত্তরাধিকার সূত্রে জাভা.টাইম ক্লাস দ্বারা জাভা 8, জাভা 9 এবং পরবর্তীকালে নির্মিত হয়েছে officially

Date, Calendar, SimpleDateFormat, এবং java.sql.*তারিখ-সময় শ্রেণীর সব এড়িয়ে চলা উচিত। এই বিভ্রান্তিকর, ঝামেলাজনক, খারাপভাবে ডিজাইন করা ক্লাস ব্যবহার করার দরকার নেই। এগুলি পুরোপুরি জাভা.টাইম ক্লাস দ্বারা প্রতিস্থাপিত হয়। তাদের এখন একমাত্র উদ্দেশ্য বিদ্যমান পুরানো কোড বজায় রাখা। পুরানো কোডের সাথে ইন্টারফেস করার সময়, আপনি পুরানো ক্লাসগুলিতে যুক্ত নতুন পদ্ধতিগুলিকে কল করে জাভা.টাইমে / থেকে রূপান্তর করতে পারেন। রূপান্তর সম্পর্কিত আরও তথ্যের জন্য, দেখুন: java.util.Date রূপান্তর করুন "java.Time" টাইপ কি?

Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস। জোডা-টাইম প্রকল্পটি জাভা.টাইম কাঠামোকে অনুপ্রাণিত করেছিল। দু'জনেরই নেতৃত্বে রয়েছেন একই মানুষ স্টিফেন কোলবর্ন । আপনি জাভা.টাইমকে জোদা-সময়ের পুনর্লিখন / পুনরায় নকশা হিসাবে ভাবতে পারেন, সমস্ত নতুন কোড কিন্তু বছরের প্রথমদিকে যা শিখেছিল তা শিল্পের প্রথম বিস্তৃত এবং অত্যাধুনিক তারিখ-সময় গ্রন্থাগার তৈরির মাধ্যমে using

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

জাভা.টাইম কার্যকারিতার বেশিরভাগটি থ্রিটেন-ব্যাকপোর্টে জাভা 6 এবং 7 এ ব্যাক-পোর্ট করা হয় এবং আরও থ্রিডেএনএবিপিতে অ্যান্ড্রয়েডের সাথে অভিযোজিত হয় ( কীভাবে ব্যবহার করবেন দেখুন… )

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

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