java - জাভাতে yyyy-MM-dd ফর্ম্যাটের ক্যালেন্ডার তারিখ




date calendar (6)

java.time

ম্যাড প্রোগ্রামার দ্বারা উত্তর সঠিক, বিশেষ করে Joda-Time সম্পর্কে টিপ। জোদা-টাইমের উত্তরাধিকারী এখন জাভা 8 এ নতুন java.time প্যাকেজ হিসাবে তৈরি করা হয়েছে। এখানে জাভা 8 উদাহরণ কোড।

তারিখ-সময় (স্থানীয় তারিখের বিপরীতে) সাথে কাজ করার সময় , সমালোচনামূলক সময় অঞ্চল । দিনের-দিন সময় অঞ্চল উপর নির্ভর করে। উদাহরণস্বরূপ, ভারত সময় অঞ্চল +05:30 (ইউটিসি থেকে সাড়ে সাড়ে পাঁচ ঘন্টা আগে), যখন France মাত্র এক ঘন্টা এগিয়ে। তাই ভারতে একটি নতুন দিনে একটি মুহূর্তের একটি তারিখ আছে, যখন ফ্রান্সের একই মুহূর্তে "গতকালের" তারিখ রয়েছে। কোন সময় অঞ্চল বা অফসেট তথ্য অভাব স্ট্রিং আউটপুট তৈরি করা হয় অস্পষ্টতা তৈরি করা হয়। আপনি YYYY-MM-DD আউটপুটটির জন্য অনুরোধ করেছেন তাই আমি সরবরাহ করেছি, তবে আমি এটি সুপারিশ করি না। ISO_LOCAL_DATE পরিবর্তে আমি এই আউটপুটটি পেতে ISO_DATE ব্যবহার ISO_DATE : 2014-02-25+05:30

ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zonedDateTime = ZonedDateTime.now( zoneId );

DateTimeFormatter formatterOutput = DateTimeFormatter.ISO_LOCAL_DATE; // Caution: The "LOCAL" part means we are losing time zone information, creating ambiguity.
String output = formatterOutput.format( zonedDateTime );

কনসোল করতে ডাম্প ...

System.out.println( "zonedDateTime: " + zonedDateTime );
System.out.println( "output: " + output );

যখন রান ...

zonedDateTime: 2014-02-25T14:22:20.919+05:30[Asia/Kolkata]
output: 2014-02-25

Joda-টাইম

Joda-Time লাইব্রেরি ব্যবহার করে একই কোড, java.time এর অগ্রদূত।

DateTimeZone zone = new DateTimeZone( "Asia/Kolkata" );
DateTime dateTime = DateTime.now( zone );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String output = formatter.print( dateTime );

আইএসও 8601

যাইহোক, আপনার ইনপুট স্ট্রিংটির যে ফর্ম্যাটটি একটি স্ট্যান্ডার্ড বিন্যাস, ISO 8601 দ্বারা সংজ্ঞায়িত বেশ কয়েকটি কার্যকর তারিখ-সময় স্ট্রিং ফর্ম্যাটগুলির মধ্যে একটি।

বিভিন্ন তারিখ-সময় মানগুলির স্ট্রিং উপস্থাপনাগুলি পার্সিং এবং জেনারেট করার সময় জোদা-টাইম এবং java.time উভয় ডিফল্টরূপে ISO 8601 ফর্ম্যাটগুলি ব্যবহার করে।

কিভাবে ক্যালেন্ডার তারিখ yyyy-MM-dd ফর্ম্যাট রূপান্তর করতে।

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);            
Date inActiveDate = null;
try {
    inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

এটি inActiveDate = Wed Sep 26 00:00:00 IST 2012 তৈরি করবে। কিন্তু আমার প্রয়োজন 2012-09-26 । আমার উদ্দেশ্য এই তারিখটি আমার ডেবিবেলে হাইবারনেট মানদণ্ড ব্যবহার করে অন্য তারিখের সাথে তুলনা করা। তাই আমি yyyy-MM-dd বিন্যাসে তারিখের বস্তুর প্রয়োজন।


আপনার কোড ভুল। তারিখ পার্সিং কোন বিন্দু এবং তারিখ বস্তুর হিসাবে রাখা।

আপনি যখন প্রদর্শন করতে চান তখন ক্যালেন্ডার তারিখের বস্তুর বিন্যাস করতে পারেন এবং স্ট্রিং হিসাবে রাখতে পারেন।

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");          
String inActiveDate = null;
try {
    inActiveDate = format1.format(date);
    System.out.println(inActiveDate );
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

একটি জাভা Date 1 জানুয়ারী, 1970, 00:00:00 GMT থেকে মিলিসেকেন্ডের সংখ্যার জন্য একটি ধারক।

যখন আপনি System.out.println(date) মতো কিছু ব্যবহার করেন, তখন জাভা বিষয়বস্তু মুদ্রণ করতে Date.toString() ব্যবহার করে।

এটি পরিবর্তন করার একমাত্র উপায় Date ওভাররাইড করা এবং Date Date.toString() এর নিজস্ব বাস্তবায়ন প্রদান করা। এখন আপনি আপনার আইডিই জ্বালিয়ে দেওয়ার আগে এটি চেষ্টা করুন, আমি চাই না; এটা শুধুমাত্র বিষয় জটিল হবে। আপনি যে ফর্ম্যাটটি (বা প্রদর্শন) ব্যবহার করতে চান সেটির তারিখটি ফর্ম্যাট করা বন্ধ করুন।

জাভা 8+

LocalDateTime ldt = LocalDateTime.now().plusDays(1);
DateTimeFormatter formmat1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);
System.out.println(ldt);
// Output "2018-05-12T17:21:53.658"

String formatter = formmat1.format(ldt);
System.out.println(formatter);
// 2018-05-12

জাভা আগে 8

আপনি থ্রিটেন ব্যাকপোর্ট ব্যবহার করা উচিত

নিম্নলিখিত ঐতিহাসিক উদ্দেশ্যে (মূল উত্তর হিসাবে) জন্য রক্ষণাবেক্ষণ করা হয়

আপনি কি করতে পারেন, তারিখ বিন্যাস করা হয়।

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(cal.getTime());
// Output "Wed Sep 26 14:23:28 EST 2012"

String formatted = format1.format(cal.getTime());
System.out.println(formatted);
// Output "2012-09-26"

System.out.println(format1.parse(formatted));
// Output "Wed Sep 26 00:00:00 EST 2012"

এই আসলে একই তারিখ, ভিন্নভাবে প্রতিনিধিত্ব করা হয়।


java.util.Date অবজেক্টটি আপনার পছন্দসই বিন্যাসে তারিখ উপস্থাপিত করতে পারে না, SimpleDateFormat.format আপনাকে string ফেরত দেওয়া SimpleDateFormat.format পদ্ধতিটি ব্যবহার করতে হবে।

String myString=format1.format(date);

public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month, date);
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy MM dd");
    String formatted = format1.format(cal.getTime());
    System.out.println(formatted);
}

public static String ThisWeekStartDate(WebDriver driver) {
        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        System.out.println("Before Start Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("Start Date " + CurrentDate);
          return CurrentDate;

    }
    public static String ThisWeekEndDate(WebDriver driver) {

        Calendar c = Calendar.getInstance();
        //ensure the method works within current month
        c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        System.out.println("Before End Date " + c.getTime());
        Date date = c.getTime();

          SimpleDateFormat dfDate = new SimpleDateFormat("dd MMM yyyy hh.mm a");

          String CurrentDate = dfDate.format(date);
          System.out.println("End Date " + CurrentDate);
          return CurrentDate;
    }




converter