অ্যান্ড্রয়েডে আমি কীভাবে বর্তমান তারিখ পেতে পারি?


165

আমি নিম্নলিখিত কোড লিখেছি

Date d = new Date();
CharSequence s  = DateFormat.format("MMMM d, yyyy ", d.getTime());

তবে আমাকে প্যারামিটার জিজ্ঞাসা করছে, আমি স্ট্রিং ফর্ম্যাটে বর্তমান তারিখ চাই,

মত

28-Dec-2011

যাতে আমি সেট আপ করতে পারি TextView,

কিছুটা ব্যাখ্যা করুন, আপনি যদি মনে করেন যে কিছু প্রয়োজনীয় প্রয়োজন, আমি অ্যান্ড্রয়েড বিকাশে নতুন।


1
DateFormatএই প্রশ্নটি যখন ২০১১ সালে জিজ্ঞাসা করা হয়েছিল তখন ক্লাসটি ব্যবহার করার সময় ঠিক ছিল, that শ্রেণিটি এবং এর সাবক্লাসগুলি SimpleDateFormatসর্বদা সমস্যাযুক্ত ছিল এবং এখন দীর্ঘকালীন। আমি আপনাকে সেগুলি ব্যবহার না করার পরিবর্তে জাভা.টাইম, আধুনিক জাভা তারিখ এবং সময় এপিআই অনুসন্ধান করার পরামর্শ দিচ্ছি
ওলে ভিভি

উত্তর:


389

আপনি SimpleDateFormatআপনার পছন্দসই বিন্যাসে তারিখের বিন্যাসের জন্য ক্লাসটি ব্যবহার করতে পারেন ।

আপনার উদাহরণের জন্য যেখানে ধারণা পাবেন কেবল এই লিঙ্কটি পরীক্ষা করুন।

উদাহরণ স্বরূপ:

String dateStr = "04/05/2010"; 
 
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy"); 
Date dateObj = curFormater.parse(dateStr); 
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy"); 
 
String newDateStr = postFormater.format(dateObj); 

হালনাগাদ:

বিস্তারিত উদাহরণটি এখানে , আমি আপনাকে এই উদাহরণটি দিয়ে যেতে এবং সিম্পলডেট ফরমেট শ্রেণীর ধারণাটি বোঝার পরামর্শ দিচ্ছি।

চূড়ান্ত সমাধান:

Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault());
String formattedDate = df.format(c);

আপনি ক্যালেন্ডার ক্লাসের পরিবর্তে সিস্টেমেআরসিআরটাইমমিলিস () পদ্ধতি বা ডেটা ক্লাস ব্যবহার করতে চাইতে পারেন। দ্রুত হওয়া উচিত। stackoverflow.com/questions/368094/...
cjayem13

এটির জন্য এপিআই 24 দরকার!
ইউন

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

@ ইউইন দয়া করে জাভা প্যাকেজটি অ্যান্ড্রয়েড থেকে নয় আমদানি করুন।
সদ্দা হুসেন

জরিমানা কাজ করে? বর্তমানে? (2020)
লুক

152

YYYY-MM-dd ফর্ম্যাটে বর্তমান তারিখ পাওয়ার জন্য এটির সহজ একটি লাইন কোড আপনি চান যে ফর্ম্যাটটি ব্যবহার করতে পারেন:

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

7
আপনার এটিতে পরিবর্তন করা উচিত: স্ট্রিং কারেন্টডেট = নতুন সিম্পলডেটফর্ম্যাট ("ডিডি-এমএম-ইইইআই", লোকেল.জেট ডেফল্ট ()) ফর্ম্যাট (নতুন তারিখ ());
বার্ট বার্গ

1
ওহ! ধন্যবাদ! এটি কার্যকর হয়েছে, যদিও আমি বিশ্বাস করি যে আমার ভার্চুয়াল ডিভাইসে তারিখটি কেন একদিন আগে প্রদর্শিত হচ্ছে তা সম্ভবত আমি খুঁজে পেয়েছি কারণ সম্ভবত ভার্চুয়াল মেশিনে তারিখটি সঠিক ছিল না। যখন সত্যিকারের ফোনে পরীক্ষা করা হয়, তখন এটি আশ্চর্য হয়ে কাজ করে। তাই আপনাকে ধন্যবাদ @ প্রটিক
ফ্র্যাঙ্কস

30

এটি অ্যান্ড্রয়েডের সাথে কিছুই করার নয় কারণ এটি জাভা ভিত্তিক তাই আপনি ব্যবহার করতে পারেন

private String getDateTime() { 
   DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
   Date date = new Date(); 
   return dateFormat.format(date); 
}

ত্রুটি রয়েছে, নতুন তারিখ () আর্গুমেন্টের জন্য জিজ্ঞাসা করছে, এবং আপনি সিম্পলডেট ফরমেটের সাথে ডেটফর্ম্যাট শুরু করছেন, এটি বৈধও নয়
চত্বর বীর সুথার

12
 public String giveDate() {
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM d, yyyy");
    return sdf.format(cal.getTime());
 }

11

এটা চেষ্টা কর,

SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);

এটি নতুন তারিখ (দীর্ঘ)
-তে

নতুন তারিখে (), এটি দীর্ঘ পরামিতি জিজ্ঞাসা করতে পারে না।
লুসিফার

আপনি কেন ব্যক্তিগত কীওয়ার্ড ব্যবহার করছেন, অ্যান্ড্রয়েড প্রকল্পে আপনার কোড চালাচ্ছেন, আপনি কি আউটপুট পান?
চাতার বীর সুথার

দয়া করে সেই "ব্যক্তিগত" সরিয়ে দিন। হ্যাঁ আমি আউটপুট পাই, আমি আপনার আলোচনা দেখছি। আপনি কেন খুব সাধারণ সারি জন্য সমস্যা করছেন তা আমি জানি না।
লুসিফার

7
CharSequence s  = DateFormat.getDateInstance().format("MMMM d, yyyy ");

আপনার প্রথমে একটি উদাহরণ প্রয়োজন


getDateInstance, এটি স্বীকৃতি দিচ্ছে না
চাতার বীর সুথার

আপনি যদি জাভা ডক্সটি দেখে থাকেন তবে তা হওয়া উচিত, ডকস.অরাকল.
com/ জাভাসে

@ ভিয়ার, আপনি যদি দুর্ঘটনাক্রমে java.text.Date Format এর পরিবর্তে android.text.format.Dateformat আমদানি করেন, getDateInstance () স্বীকৃত হবে না
gcbound

7

কবজির মতো কাজ করে এবং স্ট্রিংকে বোনাস হিসাবে রূপান্তর করে;)

SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
      Date todayDate = new Date();
    String thisDate = currentDate.format(todayDate);




4

আমি আধুনিক উত্তর প্রদান করছি।

java.Time এবং থ্রিটেনএবিপি

বর্তমান তারিখ পেতে:

    LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));

এটি আপনাকে একটি LocalDateঅবজেক্ট দেয় যা আপনার প্রোগ্রামে একটি তারিখ রাখতে আপনার ব্যবহার করা উচিত। A LocalDateদিনের তারিখ ব্যতীত একটি তারিখ।

কেবলমাত্র যখন আপনাকে কোনও ব্যবহারকারীর কাছে তারিখটি প্রদর্শনের দরকার হয়, এটির ব্যবহারকারীর লোকেলের জন্য উপযুক্ত স্ট্রিংয়ে ফর্ম্যাট করুন:

    DateTimeFormatter userFormatter
            = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
    System.out.println(today.format(userFormatter));

আমি যখন আজ ইউএস ইংলিশ লোকালে এই স্নিপেটটি চালিয়েছিলাম, আউটপুটটি ছিল:

জুলাই 13, 2019

আপনি যদি এটি আরও খাটো করতে চান তবে নির্দিষ্ট করুন FormatStyle.MEDIUMবা এমনকি করুন FormatStyle.SHORTDateTimeFormatter.ofLocalizedDateডিফল্ট ফর্ম্যাটিং লোকেল ব্যবহার করে, সুতরাং পয়েন্টটি হ'ল এটি সেই লোকেলের জন্য উপযুক্ত আউটপুট দেবে, বিভিন্ন লোকেলের জন্য আলাদা।

যদি আপনার ব্যবহারকারীর আউটপুট ফর্ম্যাটটির জন্য খুব বিশেষ প্রয়োজনীয়তা থাকে তবে একটি বিন্যাসের প্যাটার্ন স্ট্রিং ব্যবহার করুন:

    DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
            "d-MMM-u", Locale.forLanguageTag("ar-AE"));

13 يول -2019

আমি জাভা.টাইম, আধুনিক জাভা তারিখ এবং সময় এপিআই ব্যবহার এবং সুপারিশ করছি। DateFormat, SimpleDateFormat, Dateএবং Calendarপ্রশ্ন ব্যবহার করা হয় এবং / অথবা অন্যান্য উত্তর অনেক দুর্বল ডিজাইন করা হয় এবং দীর্ঘ পুরানো। এবং জাভা.টাইম এর সাথে কাজ করা এত সুন্দর।

প্রশ্ন: আমি অ্যান্ড্রয়েডে জাভা.টাইম ব্যবহার করতে পারি?

হ্যাঁ, জাভা.টাইম পুরানো এবং আরও নতুন অ্যান্ড্রয়েড ডিভাইসে দুর্দান্তভাবে কাজ করে। এটির জন্য কমপক্ষে জাভা 6 প্রয়োজন

  • জাভা 8 এবং তারপরে এবং আরও নতুন অ্যান্ড্রয়েড ডিভাইসগুলিতে (এপিআই স্তর 26 থেকে) আধুনিক এপিআই বিল্ট ইন হয়।
  • জাভা 6 এবং 7-এ থ্রিটেন ব্যাকপোর্ট, আধুনিক ক্লাসগুলির ব্যাকপোর্ট (জেএসআর 310 এর জন্য থ্রিডেন; নীচের লিঙ্কগুলি দেখুন) পান।
  • (পুরানো) অ্যান্ড্রয়েড থ্রিটেন ব্যাকপোর্টের অ্যান্ড্রয়েড সংস্করণ ব্যবহার করে। একে থ্রিটেনএবিপি বলে। এবং org.threeten.bpসাব-প্যাকেজগুলি সহ আপনি তারিখ এবং সময় ক্লাসগুলি আমদানি করেছেন তা নিশ্চিত করুন ।

লিংক


খুব ভাল উত্তর! তবে আমি কীভাবে থ্রিটেন লোকালডেটটাইমকে তারিখে রূপান্তর করতে পারি? আমি ফায়ারবেস ব্যবহার করছি এবং টাইমস্ট্যাম্প সংরক্ষণের পূর্ব শর্ত হ'ল ডেট অবজেক্ট।
এইচ.কারাটসানোভ

@ এইচ.কারাটসানোভ যদি ব্যাকপোর্টটি ব্যবহার করে থাকে: DateTimeUtils.toDate(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())। বিল্ট-ইন java.time ব্যবহার এমন: Date.from(yourLocalDateTime.atZone(ZoneId.systemDefault()).toInstant())Java.Time.LocalDateTime এবং java.util.Date এর মধ্যে রূপান্তর দেখুন । জোডাস্টেফেন কর্তৃক অনুমোদিত অনুমোদনের উত্তর রয়েছে এবং ব্যাকপোর্টের ব্যবহার দেখানো একটি উত্তরও রয়েছে
ওলে ভিভি

4
 public static String getcurrentDateAndTime(){

        Date c = Calendar.getInstance().getTime();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
        String formattedDate = simpleDateFormat.format(c);
        return formattedDate;
    }

// String currentdate=  getcurrentDateAndTime();

এটি ইতিমধ্যে অন্যান্য উত্তরে নয় এমন প্রশ্নের ( আমি স্ট্রিং ফর্ম্যাটে বর্তমান তারিখটি চাই28-Dec-2011 ) এর পক্ষে যথেষ্ট অবদান রাখছি ? যে কোনও ক্ষেত্রে এটি এখনও কুখ্যাত ঝামেলা এবং দীর্ঘ মেয়াদী SimpleDateFormatশ্রেণীর ব্যবহার করছে । দয়া করে, এটি করার জন্য আমাদের আর কোনও উত্তরের দরকার নেই।
ওলে ভিভি

এটি সর্বোত্তম অনুশীলনের জন্য কাজ করছে দ্বিতীয় প্যারামিটার লোকেল সিম্পল ডেটফর্ম্যাট সিম্পল ডেটফর্ম্যাট = নতুন সিম্পলডেটফর্ম্যাট ("yyyy / এমএম / ডিডি", লোকেল.এএনগ্লিশ) যোগ করুন;
রুচা ভট্ট জোশী

3
Calendar cal = Calendar.getInstance();      
Calendar dt = Calendar.getInstance(); 
dt.clear();
dt.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),cal.get(Calendar.DATE)); 
return dt.getTime();        

3

পরেশের সমাধানের জন্য একটি সহজ ঝাঁকুনি:

Date date = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(date);

3
Calendar c = Calendar.getInstance();
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
String date = day + "/" + (month + 1) + "/" + year;

Log.i("TAG", "--->" + date);

2

আপনি যে ফর্ম্যাটটি চান তাতে তারিখ পেতে আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন।

String date = String.valueOf(android.text.format.DateFormat.format("dd-MM-yyyy", new java.util.Date()));

ভাল একটি লাইনার এবং নিম্ন এসডিএসে কাজ করে। কয়েকটি অক্ষর সংক্ষিপ্ত ডেটফর্ম্যাট.ফর্ম্যাট ("ডিডি-এমএম-ইয়াই", নতুন java.util.Date ()) টু স্ট্রিং ()
জেফ্রি

1
Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);

এই এক সেরা উত্তর ...


0

বর্তমান লোকালে বর্তমান তারিখটি পাওয়ার সহজতম উপায় (ডিভাইস লোকেল!):

String currentDate = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());

আপনি যদি বিভিন্ন স্টাইলে তারিখটি পেতে চান তবে getDateInstance(int style):

DateFormat.getDateInstance(DateFormat.FULL).format(Calendar.getInstance().getTime());

অন্যান্য শৈলী: DateFormat.LONG, DateFormat.DATE_FIELD, DateFormat.DAY_OF_YEAR_FIELD, ইত্যাদি (ব্যবহারের CTRL+Spaceতাদের সব দেখতে)

আপনারও যদি সময় প্রয়োজন হয়:

String currentDateTime = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.LONG).format(Calendar.getInstance().getTime());


0

কোডের এই লিঙ্কটি দিয়ে চেষ্টা করুন এটি সমস্ত তারিখ এবং সময় জুড়ে সমস্ত ক্ষেত্রে নিখুঁত সঠিক উত্তর। বা প্রয়োজন এবং অ্যাপ্লিকেশন প্রয়োজন অনুযায়ী তারিখ এবং সময় কাস্টমাইজ।

এই লিঙ্ক দিয়ে চেষ্টা করুন। এই লিঙ্ক দিয়ে চেষ্টা করুন


0

আমি ক্যালেন্ডারভিউ ব্যবহার করে ক্যালেন্ডার অ্যাপটি লিখেছিলাম এবং এটি আমার কোড:

CalendarView cal = (CalendarView) findViewById(R.id.calendar);
cal.setDate(new Date().getTime());

'ক্যালেন্ডার' ক্ষেত্রটি আমার ক্যালেন্ডারভিউ। আমদানি:

import android.widget.CalendarView;
import java.util.Date;

আমি ত্রুটি ছাড়াই বর্তমান তারিখ পেয়েছি।


0

এই কোডটি আমি ব্যবহার করেছি:

             Date date = new Date();  // to get the date
             SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); // getting date in this format
             String formattedDate = df.format(date.getTime());
             text.setText(formattedDate);

0

আমি ইতিমধ্যে এটি ব্যবহার করেছি:

Date What_Is_Today=Calendar.getInstance().getTime();
SimpleDateFormat Dateformat = new SimpleDateFormat("dd-MM-yyyy");
String Today=Dateformatf.format(What_Is_Today);

Toast.makeText(this,Today,Toast.LENGTH_LONG).show();

প্রথমে আমি সময় পাই, তারপরে আমি একটি সাধারণ তারিখের ফর্ম্যাট ঘোষণা করলাম (তারিখ পাওয়ার জন্য: 19-6-2018) তারপরে আমি তারিখটি স্ট্রিংয়ে পরিবর্তন করতে ফর্ম্যাটটি ব্যবহার করি।


0

সাধারণ তারিখের ফর্ম্যাট পেতে কেবল একটি লাইন কোড:

SimpleDateFormat.getDateInstance().format(Date())

আউটপুট: 18-মে -2020

SimpleDateFormat.getDateTimeInstance().format(Date())

আউটপুট: 18-মে -2020 11:00:39 পূর্বাহ্ন

SimpleDateFormat.getTimeInstance().format(Date())

আউটপুট: 11:00:39 এএম

আশা করি এই উত্তরটি এই তারিখ এবং সময় ফর্ম্যাটটি পাওয়ার জন্য যথেষ্ট ... :)


দয়া করে বাচ্চাদের দীর্ঘকালীন এবং কুখ্যাতভাবে ঝামেলা SimpleDateFormatএবং DateFormatক্লাস ব্যবহার করতে শিখবেন না । কমপক্ষে প্রথম বিকল্প হিসাবে না। এবং কোনও সংরক্ষণ ছাড়া না। java.timeআধুনিক জাভা তারিখ এবং সময় এপিআই, এবং এর মধ্যে আজ আমরা আরও অনেক ভাল DateTimeFormatter। হ্যাঁ, আপনি এটি অ্যান্ড্রয়েডে ব্যবহার করতে পারেন। পুরানো অ্যান্ড্রয়েডের জন্য অ্যান্ড্রয়েড প্রকল্পে থ্রিটেনএবিপি কীভাবে ব্যবহার করবেন তা দেখুন ।
ওলে ভিভি

-1

এই কোডটি আমি ব্যবহার করেছি :

final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);

// Set current date into textview
tvDisplayDate.setText(new StringBuilder()
    .append(month + 1).append("-") // Month is 0 based, add 1
    .append(day).append("-")
    .append(year).append("   Today is :" + thursday ) );

// Set current date into datepicker
dpResult.init(year, month, day, null);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.