জাভাতে বর্তমান তারিখটিকে স্ট্রিংয়ে রূপান্তর করবেন কীভাবে?


118

আমি কীভাবে বর্তমান তারিখটিকে জাভাতে স্ট্রিংয়ে রূপান্তর করব?

উত্তর:


215
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());

টাইমস্ট্রিংয়ের জন্য ঠিক নীচে এর উত্তর এবং উত্তরটির সংমিশ্রণ ব্যবহার করেছেন। সি:
php_coder_3809625

@ আইয়ান পার্টন ইউটিসি তেজে স্ট্রিং ডেট ..?
কানাগাভেলু সুগুমার

এফওয়াইআই, এই ঝামেলাযুক্ত ক্লাসগুলি এখন লিগ্যাসি, জাভা.টাইম ক্লাসগুলির দ্বারা পরিপূর্ণ। ওরাকল টিউটোরিয়াল দেখুন ।
বেসিল Bourque

62
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";

public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}

এখান থেকে নেওয়া হয়েছে


তারিখের পরিবর্তে ক্যালেন্ডার ব্যবহারের জন্য সেরা প্রতিক্রিয়া।
এলোমেলো

5
আমি বিভ্রান্ত কোন মহাবিশ্বের Calendarতুলনায় আরও আকাঙ্ক্ষিত Date?
jasonmp85

1
এফওয়াইআই, এই ঝামেলাযুক্ত ক্লাসগুলি এখন লিগ্যাসি, জাভা.টাইম ক্লাসগুলির দ্বারা পরিপূর্ণ। ওরাকল টিউটোরিয়াল দেখুন ।
বাসিল বাউরক

27
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();

58
ওভারচাইভিংয়ের জন্য দুঃখিত।
jasonmp85

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

19

একটি DateFormatবাস্তবায়ন ব্যবহার করুন ; যেমন SimpleDateFormat

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());

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

13

TL; ড

LocalDate.now()
         .toString() 

2017-01-23

কাঙ্ক্ষিত / প্রত্যাশিত সময় অঞ্চলটি স্পষ্টভাবে নির্দিষ্ট করা ভাল।

LocalDate.now( ZoneId.of( "America/Montreal" ) )
         .toString() 

java.time

জাভা 8 হিসাবে আধুনিক উপায় এবং পরবর্তীটি জাভা.টাইম ফ্রেমওয়ার্কের সাথে।

সময় অঞ্চল উল্লেখ করুন, যেহেতু যে কোনও মুহুর্তে তারিখটি বিশ্ব জুড়ে পরিবর্তিত হয়।

ZoneId zoneId = ZoneId.of( "America/Montreal" ) ;  // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;

2017-01-23

ডিফল্টরূপে আপনি স্ট্যান্ডার্ড আইএসও 8601 ফর্ম্যাটে একটি স্ট্রিং পাবেন ।

অন্যান্য ফর্ম্যাটগুলির জন্য java.time.format.DateTimeFormatterক্লাস ব্যবহার করুন ।


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

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

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

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

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

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

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



1

সময়ের জন্য YYYY-MM-dd হিসাবে

String time = new DateTime( yourData ).toString("yyyy-MM-dd");

এবং ডেটটাইম লাইব্রেরিটি হ'ল:

আমদানি org.joda.time.DateTime;


আর কোন পাঠাগারটি DateTimeএসেছে? স্ট্যাক ওভারফ্লোতে একটি উত্তরের কিছু ব্যাখ্যা থাকা উচিত কারণ এই সাইটটি একটি স্নিপেট লাইব্রেরির চেয়ে বেশি বোঝানো হয়েছে।
বেসিল Bourque

0

বেশিরভাগ উত্তর বৈধ / ছিল / ডেট হ্যান্ডলিংয়ের জন্য নতুন জাভা এপিআই পরিবর্তনটি জাভা ডেট হ্যান্ডলিংয়ের পূর্বের কিছু অস্পষ্টতা হ্রাস পেয়েছে তা নিশ্চিত করেছে।

আপনি অনুরূপ কলগুলির জন্য অবহেলিত বার্তা পাবেন।

new Date() // deprecated

উপরের কলটির বিকাশকারীকে ধরে নিতে হয়েছিল যে একটি নতুন তারিখ অবজেক্টটি বর্তমান টাইমস্ট্যাম্পের সাথে তারিখ অবজেক্ট দেবে। এই আচরণটি অন্যান্য জাভা এপিআই ক্লাসে সামঞ্জস্যপূর্ণ নয়।

এটি করার নতুন উপায় হ'ল ক্যালেন্ডার ইনস্ট্যান্স ব্যবহার করা ।

new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()

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

এটি বাস্তব জীবনের আরও সমার্থক

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

এটি করার আরও একটি উপায় হ'ল জোদা সময় এপিআই

new DateTime().toString("yyyy-MM-dd")

বা আরও সুস্পষ্ট

new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")

দু'জনেই একই ফল দেবে।


অবগতির জন্য, যেমন বিরক্তিজনক পুরাতন তারিখ-সময় শ্রেণীর java.util.Date, java.util.Calendarএবং java.text.SimpleTextFormatএখন উত্তরাধিকার দ্বারা supplanted java.time ক্লাস। এছাড়াও, জোদা-টাইম প্রকল্পটি এখন রক্ষণাবেক্ষণের মোডে রয়েছে , টিমটি জাভা.টাইমে মাইগ্রেশনের পরামর্শ দিচ্ছে।
বেসিল Bourque

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

এফওয়াইআই, Clockজাভা 8- এ বাস্তবায়ন লিগ্যাসি ক্লাসগুলির মতো ঠিক। কেবল জাভা 9 এ একটি নতুন বাস্তবায়ন এসেছে, এটি ন্যানোসেকেন্ডের মতো সূক্ষ্ম হিসাবে একটি রেজোলিউশন সহ বর্তমান মুহূর্তটি ক্যাপচার করতে সক্ষম।
বেসিল Bourque

হ্যাঁ এই কারণেই আমি লিখেছিলাম "শেষ পর্যন্ত" জাভাতে একটি ক্লক ক্লাস থাকবে যা বাস্তব জীবনের দৃশ্যের (OOPS ধারণা) অনুকরণ করবে এবং বর্তমান মুহুর্তটি প্রদর্শন / ক্যাপচার করবে (আপনি যেভাবে বলতে পছন্দ করবেন)।
স্বপ্নিল ভারগাঁওকার

-2
public static Date getDateByString(String dateTime) {
        if(dateTime==null || dateTime.isEmpty()) {
            return null;
        }
        else{
            String modified = dateTime + ".000+0000";
            DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
            Date dateObj = new Date();
            Date dateObj1 = new Date();
            try {
                if (dateTime != null) {
                    dateObj = formatter.parse(modified);
                }

            } catch (ParseException e) {
                e.printStackTrace();
            }

            return dateObj;
        }

    }

1
এই কোডের টুকরো সম্পর্কে কিছু ব্যাখ্যা সম্ভবত উপকারী হবে।
পাইভস

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