স্কালায় তারিখ এবং সময় নিয়ে কাজ করার মানক উপায় কী? আমার জাভা প্রকারগুলি ব্যবহার করা উচিত বা দেশীয় স্কালার বিকল্পগুলি রয়েছে?


161

স্কালায় তারিখ এবং সময় নিয়ে কাজ করার মানক উপায় কী? আমি জাভা.ইটিল.ডেটের মতো জাভা প্রকারগুলি ব্যবহার করব বা দেশীয় স্কালার বিকল্পগুলি রয়েছে?

উত্তর:


129

জাভা এসই 8 থেকে, ব্যবহারকারীদের জাভা.টাইম (জেএসআর -310) এ মাইগ্রেট করতে বলা হয়। স্কাল - টাইমের মতো স্কালার জন্য জাভা.টাইম মোড়ানো স্কেল লাইব্রেরি তৈরির চেষ্টা রয়েছে । যদি এসই 8 এর চেয়ে কম টার্গেট করে নীচের একটি ব্যবহার করুন। এছাড়াও দেখুন কেন জেএসআর -310 জোদা-সময় নয়


জোদা সময়ের জন্য একটি নতুন স্কালার মোড়ক । এই প্রকল্পটি স্কাল-সময় থেকে তৈরি কারণ মনে হয় স্কাল-সময় আর রক্ষণাবেক্ষণ করা হয় না।

import com.github.nscala_time.time.Imports._

DateTime.now // returns org.joda.time.DateTime = 2009-04-27T13:25:42.659-07:00

DateTime.now.hour(2).minute(45).second(10) // returns org.joda.time.DateTime = 2009-04-27T02:45:10.313-07:00

DateTime.now + 2.months // returns org.joda.time.DateTime = 2009-06-27T13:25:59.195-07:00

DateTime.nextMonth < DateTime.now + 2.months // returns Boolean = true

DateTime.now to DateTime.tomorrow  // return org.joda.time.Interval = > 2009-04-27T13:47:14.840/2009-04-28T13:47:14.840

(DateTime.now to DateTime.nextSecond).millis // returns Long = 1000

2.hours + 45.minutes + 10.seconds
// returns com.github.nscala_time.time.DurationBuilder
// (can be used as a Duration or as a Period)

(2.hours + 45.minutes + 10.seconds).millis
// returns Long = 9910000

2.months + 3.days
// returns Period

জোদা টাইম একটি ভাল জাভা গ্রন্থাগার, জর্জি অর্টিজ দ্বারা নির্মিত স্কেল -টাইমে জোদা সময়ের জন্য উপলব্ধ একটি স্কালা র‌্যাপার / অন্তর্নিহিত রূপান্তর গ্রন্থাগার রয়েছে । (দ্রষ্টব্য ছাপগুলির কার্যকারিতা হিট হয় তবে এটি আপনি কী লক্ষ্য করবেন তা কী তা নির্ভর করে you এবং আপনি যদি কোনও পারফরম্যান্স সমস্যা থেকে সজ্জিত হন তবে আপনি কেবল জোদা ইন্টারফেসে ফিরে যেতে পারেন)

পুনরায় পড়া থেকে:

USAGE:
  import org.scala_tools.time.Imports._

  DateTime.now
  // returns org.joda.time.DateTime = 2009-04-27T13:25:42.659-07:00

  DateTime.now.hour(2).minute(45).second(10)
  // returns org.joda.time.DateTime = 2009-04-27T02:45:10.313-07:00

  DateTime.now + 2.months
  // returns org.joda.time.DateTime = 2009-06-27T13:25:59.195-07:00

  DateTime.nextMonth < DateTime.now + 2.months
  // returns Boolean = true
  DateTime.now to DateTime.tomorrow
  // return org.joda.time.Interval =
  //   2009-04-27T13:47:14.840/2009-04-28T13:47:14.840

  (DateTime.now to DateTime.nextSecond).millis
  // returns Long = 1000

  2.hours + 45.minutes + 10.seconds
  // returns org.scala_tools.time.DurationBuilder
  // (can be used as a Duration or as a Period)

  (2.hours + 45.minutes + 10.seconds).millis
  // returns Long = 9910000 

  2.months + 3.days
  // returns Period

4
ভিডিও স্কেলজ: জাভা লাইব্রেরিগুলির জন্য আইডিয়োম্যাটিক
দিনগুলি

ধন্যবাদ, আমি এই মোড়ক সম্পর্কে জানি না।
ভাদিম শেন্দার

আমি এটি থেকে একটি ফর্ম্যাট আউটপুট পেতে পারি না। আমি যদি ডেটটাইম.ফর্ম্যাট্টেড ("yyyyMMdd") ব্যবহার করি তবে আমি প্রতিক্রিয়া হিসাবে কেবল সাদামাটা "yyyyMMdd" (সংশ্লিষ্ট সংখ্যার সাথে প্রতিস্থাপিত নয়) get আমি যদি ডেটটাইম.ফর্ম্যাট্টেড (ডেটটাইম ফর্ম্যাট.ফর্ম্প্যাটার্ন ("yyyyMMdd")) ব্যবহার করি - আমি স্ট্রিং আর্গুমেন্টের জন্য জিজ্ঞাসা করে একটি ত্রুটি পাই।
ইভান

1
যেহেতু মনে হচ্ছে স্কাল-টাইমটি আর রক্ষণাবেক্ষণ করা হয় না, এটি এনএসকালা-সময় (যা স্কাল-টাইমের বিপরীতে স্কেলার সময় ২.১০ এর সাথে কাজ করে) দ্বারা ছাড়িয়ে গেছে। এটি github.com/nscala-time/nscala- সময় পাওয়া যাবে
সেবাস্তিয়ান গ্যানসাল্ট

1
তাদের Importsএবং এর সাথে সমস্যাটি সনাক্ত করতে পারছি না scala.concurrent.duration._। পরিবর্তে সরল জোডটাইম ব্যবহার করেছেন এবং এর উপরে নিজস্ব সাইকেল লিখেছেন।
কিসিলেনো

12

আপনি যদি জাভা 8 ব্যবহার করেন তবে nscalaআর ব্যবহার করার দরকার নেই। জোদা-টাইম লাইব্রেরিটি java.timeপ্যাকেজের (জেএসআর -310) আওতায় জাভা 8-এ স্থানান্তরিত করা হয়েছে । আপনার স্কেলা প্রকল্পে কেবল সেই প্যাকেজটি আমদানি করুন।


1
ওটা সত্যি না. জাভা -8 => দুটি পৃথক পৃথক এপিআইতে স্যুইচ করার সময় জোডা-টাইম-কোডটি মাইগ্রেশন / অ্যাডজাস্ট করতে হবে!
মেনো হচসচাইল্ড

7

স্কালায় তারিখগুলি নিয়ে কাজ করার কোনও মানক উপায় নেই । উপলব্ধ বিকল্পগুলি হ'ল:

  1. জাভা.টাইম (আপনি যদি জাভা 8 ব্যবহার করছেন) ব্যবহার করুন যেহেতু এটির মধ্যে জওডিএ সময়ের সেরা সময় রয়েছে। কোন ফলস্বরূপ।
  2. Nscala- সময় ব্যবহার করুন।
  3. লামার তারিখের পাঠাগার (দৃশ্যটিতে তুলনামূলকভাবে নতুন লাইব্রেরি)

আশেপাশের ভাল-ডকুমেন্টেড ইস্যুগুলির কারণে আমি java.util.Date ব্যবহার এড়াতে চাই।


5

প্রেরণা:

জাভা তারিখ এবং ক্যালেন্ডার লাইব্রেরিগুলি মূলত অপর্যাপ্ত। এগুলি পরিবর্তনীয়, থ্রেড-নিরাপদ নয় এবং ব্যবহারে খুব অসুবিধে হয়।

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

এই প্রকল্পটি জোডা টাইম লাইব্রেরিগুলির চারপাশে সুবিধার একটি পাতলা স্তর সরবরাহ করে, স্কালার মধ্যে এগুলি ব্যবহার করার জন্য আরও মূর্তিযুক্ত making

( https://github.com/jorgeortiz85/scala- সময় থেকে অনুলিপি করা হয়েছে )


3

প্রত্যেকে জোডটাইম ব্যবহার করে, এই স্কালা সহায়ক / মোড়ক লাইব্রেরিগুলিতে স্কালার নতুন সংস্করণ সহ পুনরায় সংকলনের প্রয়োজন হতে পারে। জোদাতিম একমাত্র সময় গ্রন্থাগার যা প্রায় দীর্ঘ সময় ধরে ছিল এবং স্থিতিশীল এবং স্কালার প্রতিটি সংস্করণের সাথে নির্ভরযোগ্যভাবে কাজ করে।

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