উত্তর:
স্ট্যান্ডার্ড জাভা ডেটফর্ম্যাট ক্লাসটি ব্যবহার করুন।
উদাহরণস্বরূপ বর্তমান তারিখ এবং সময়টি প্রদর্শিত করতে নিম্নলিখিতটি করুন:
Date date = new Date(location.getTime());
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
mTimeText.setText("Time: " + dateFormat.format(date));
আপনি নিজের মান সহ একটি তারিখ অবজেক্টটি সূচনা করতে পারেন, তবে আপনার সচেতন হওয়া উচিত যে নির্মাতারা অবমূল্যায়ন করা হয়েছে এবং আপনার জাভা ক্যালেন্ডার অবজেক্টটি সত্যই ব্যবহার করা উচিত।
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
প্রত্যাবর্তিত তারিখের ফর্ম্যাটটি টাইপের java.text.DateFormat
(এবং নয় android.text.format.DateFormat
)
আমার মতে, android.text.format.DateFormat.getDateFormat(context)
আমাকে বিভ্রান্ত করে তোলে কারণ - - " java.text.DateFormat
না করে এই পদ্ধতিটি ফিরে আসে android.text.format.DateFormat
।
সুতরাং, আমি আমার ফর্ম্যাটে বর্তমান তারিখ / সময় পেতে নীচে ফ্রেগমেন্ট কোডটি ব্যবহার করি।
android.text.format.DateFormat df = new android.text.format.DateFormat();
df.format("yyyy-MM-dd hh:mm:ss a", new java.util.Date());
or
android.text.format.DateFormat.format("yyyy-MM-dd hh:mm:ss a", new java.util.Date());
এছাড়াও, আপনি অন্যের ফর্ম্যাটগুলি ব্যবহার করতে পারেন। তারিখফর্ম্যাট অনুসরণ করুন ।
hh:mm:ss
আপনাকে 01:00:00
1 প্রধানমন্ত্রী প্রদান করবে , আপনাকে kk:mm:ss
পেতে প্রয়োজন হবে13:00:00
k
হ'ল ঘন্টা ( 1-2-24 ), আপনি কি বোঝাতে চাইছেন না H
, যা দিনে ঘন্টা (0-23), যেমন। Hh: mm: SS? দেখুন: developer.android.com/references/java/text/SimpleDate
java.text.SimpleDateFormat
(আপনি কী যুক্ত করেছেন এবং H
0-23 পরিসরে ঘন্টার জন্য ব্যবহার করেন) এবং android.text.format.DateFormat
(উত্তরটি কী এবং 0-23 পরিসরে ঘন্টার জন্য কী ব্যবহার করে k
)
k
, তবে, DateFormat
স্পষ্টভাবে উল্লেখ করা ডকুমেন্টেশনগুলির জন্য ফর্ম্যাট স্ট্রিংগুলির নীতিগত ডকুমেন্টেশনের জন্য, সিম্পলডেটফর্ম্যাট দেখুন। খুবই বিভ্রান্তিকর. নাকি আমি কিছু মিস করছি?
আপনি ব্যবহার করতে পারেন DateFormat
। ফলাফল ফোনের ডিফল্ট লোকালে নির্ভর করে তবে আপনি লোকালও নির্দিষ্ট করতে পারেন:
https://developer.android.com/reference/java/text/DateFormat.html
এটি একটি ফলাফল
DateFormat.getDateInstance().format(date)
এফআর লোকেল: 3 2017
মার্কিন / এন লোকাল: জানুয়ারী 12, 1952
DateFormat.getDateInstance(DateFormat.SHORT).format(date)
এফআর লোকেল: 03/11/2017
মার্কিন / এন লোকেল: 12.13.52
DateFormat.getDateInstance(DateFormat.MEDIUM).format(date)
এফআর লোকেল: 3 2017
মার্কিন / এন লোকাল: জানুয়ারী 12, 1952
DateFormat.getDateInstance(DateFormat.LONG).format(date)
এফআর লোকাল: 3 নভেম্বরে 2017
মার্কিন / এন লোকাল: 12 জানুয়ারী, 1952
DateFormat.getDateInstance(DateFormat.FULL).format(date)
এফআর লোকাল: 3 নভেম্বর নভেম্বর 2017
মার্কিন / এন লোকাল: মঙ্গলবার, এপ্রিল 12, 1952
DateFormat.getDateTimeInstance().format(date)
এফআর লোকেল: 3 2017 16:04:58 |
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date)
এফআর লোকেল: 03/11/2017 16:04
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(date)
এফআর লোকেল: 03/11/2017 16:04:58
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG).format(date)
এফআর লোকেল: 03/11/2017 16:04:58 GMT + 01: 00
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.FULL).format(date)
এফআর লোকেল: 03/11/2017 16:04:58 হিউর নরমলে ডি'ইউরোপ সেন্ট্রলে
DateFormat.getTimeInstance().format(date)
এফআর লোকেল: 16:04:58
DateFormat.getTimeInstance(DateFormat.SHORT).format(date)
এফআর লোকেল: 16:04
DateFormat.getTimeInstance(DateFormat.MEDIUM).format(date)
এফআর লোকেল: 16:04:58
DateFormat.getTimeInstance(DateFormat.LONG).format(date)
এফআর লোকেল: 16:04:58 GMT + 01: 00
DateFormat.getTimeInstance(DateFormat.FULL).format(date)
এফআর লোকেল: 16:04:58 হিউম্যান নরমলে ডি'ইউরোপ সেন্ট্রলে
স্থানীয় তারিখের স্ট্রিংয়ের তারিখ:
Date date = new Date();
String stringDate = DateFormat.getDateTimeInstance().format(date);
বিকল্প:
DateFormat.getDateInstance()
-> 31 ডিসেম্বর, 1969
DateFormat.getDateTimeInstance()
-> ডিসেম্বর 31, 1969 4:00:00 অপরাহ্ণ
DateFormat.getTimeInstance()
-> 4:00:00 অপরাহ্ন
এটি এটি করবে:
Date date = new Date();
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(getApplicationContext());
mTimeText.setText("Time: " + dateFormat.format(date));
সিম্পলডেটফরম্যাট ব্যবহার করুন
এটার মত:
event.putExtra("starttime", "12/18/2012");
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
Date date = format.parse(bundle.getString("starttime"));
new SimpleDateFormat("my-format", Locale.getDefault());
এটি অনুসরণ করুন: http://developer.android.com/references/android/text/format/Time.html
অ্যান্ড্রয়েড নেটিভ টাইম ক্লাস ব্যবহার করা আরও ভাল:
Time now = new Time();
now.setToNow();
তারপরে ফর্ম্যাট করুন:
Log.d("DEBUG", "Time "+now.format("%d.%m.%Y %H.%M.%S"));
এই দুটি ক্লাস ভেরিয়েবল হিসাবে ব্যবহার করুন:
public java.text.DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
private Calendar mDate = null;
এবং এটি এর মতো ব্যবহার করুন:
mDate = Calendar.getInstance();
mDate.set(year,months,day);
dateFormat.format(mDate.getTime());
এটি আমার পদ্ধতি, আপনি সংজ্ঞা এবং ইনপুট এবং আউটপুট ফর্ম্যাট করতে পারেন।
public static String formattedDateFromString(String inputFormat, String outputFormat, String inputDate){
if(inputFormat.equals("")){ // if inputFormat = "", set a default input format.
inputFormat = "yyyy-MM-dd hh:mm:ss";
}
if(outputFormat.equals("")){
outputFormat = "EEEE d 'de' MMMM 'del' yyyy"; // if inputFormat = "", set a default output format.
}
Date parsed = null;
String outputDate = "";
SimpleDateFormat df_input = new SimpleDateFormat(inputFormat, java.util.Locale.getDefault());
SimpleDateFormat df_output = new SimpleDateFormat(outputFormat, java.util.Locale.getDefault());
// You can set a different Locale, This example set a locale of Country Mexico.
//SimpleDateFormat df_input = new SimpleDateFormat(inputFormat, new Locale("es", "MX"));
//SimpleDateFormat df_output = new SimpleDateFormat(outputFormat, new Locale("es", "MX"));
try {
parsed = df_input.parse(inputDate);
outputDate = df_output.format(parsed);
} catch (Exception e) {
Log.e("formattedDateFromString", "Exception in formateDateFromstring(): " + e.getMessage());
}
return outputDate;
}
আমি ডিভাইসের পূর্বনির্ধারিত বিন্যাসে সিস্টেম থেকে আসল তারিখ এবং সময় পেতে কাস্টম প্যাটার্ন ছাড়াই সিম্পলডিট ফরমেট ব্যবহার করি :
public static String getFormattedDate() {
//SimpleDateFormat called without pattern
return new SimpleDateFormat().format(Calendar.getInstance().getTime());
}
ফেরত :
টাইম ক্লাসে বিল্ড ব্যবহার করুন!
Time time = new Time();
time.set(0, 0, 17, 4, 5, 1999);
Log.i("DateTime", time.format("%d.%m.%Y %H:%M:%S"));
অন্যান্য উত্তরগুলি সাধারণত সঠিক। আমার আধুনিক উত্তরটি অবদান রাখতে পছন্দ করা উচিত। ক্লাসগুলি Date
, DateFormat
এবং SimpleDateFormat
অন্যান্য উত্তরগুলির বেশিরভাগটিতে ব্যবহৃত, দীর্ঘকালীন এবং বহু বছর ধরে অনেক প্রোগ্রামারদের জন্য সমস্যা তৈরি করেছে। আজ আমাদের কাছে java.time
আধুনিক জাভা তারিখ এবং সময় এপিআই, এ কেএ জেএসআর -310 এ আরও অনেক ভাল । আপনি কি এটিকে এখনও অ্যান্ড্রয়েডে ব্যবহার করতে পারেন? অবশ্যই! থ্রিটেনএবিপি প্রকল্পে আধুনিক ক্লাসগুলি অ্যান্ড্রয়েডে ব্যাকপোর্ট করা হয়েছে। এই প্রশ্নটি দেখুন : সমস্ত বিবরণের জন্য অ্যান্ড্রয়েড প্রকল্পে থ্রিটেনএবিপি কীভাবে ব্যবহার করবেন ।
এই স্নিপেটটি আপনার শুরু করা উচিত:
int year = 2017, month = 9, day = 28, hour = 22, minute = 45;
LocalDateTime dateTime = LocalDateTime.of(year, month, day, hour, minute);
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM);
System.out.println(dateTime.format(formatter));
আমি যখন আমার কম্পিউটারের পছন্দের ভাষাটি ইউএস ইংলিশ বা ইউকে ইংরাজীতে সেট করি, তখন এটি মুদ্রণ করে:
Sep 28, 2017 10:45:00 PM
পরিবর্তে যখন আমি ডেনিশকে সেট করি, তখন আমি পাই:
28-09-2017 22:45:00
সুতরাং এটি কনফিগারেশন অনুসরণ করে। যদিও এটি আপনার ডিভাইসের তারিখ এবং সময় সেটিংস অনুসরণ করে ঠিক কীভাবে তা অনুসরণ করে তা সম্পর্কে আমি নিশ্চিত নই এবং এটি ফোন থেকে ফোনে পরিবর্তিত হতে পারে।
এই কোডটি আমার পক্ষে কাজ করে!
Date d = new Date();
CharSequence s = android.text.format.DateFormat.format("MM-dd-yy hh-mm-ss",d.getTime());
Toast.makeText(this,s.toString(),Toast.LENGTH_SHORT).show();
মিলিসেকেন্ড থেকে লোকেল বিন্যাসে তারিখ বা সময় পেতে আমি এটি ব্যবহার করেছি:
Date date = new Date(milliseconds);
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, Locale.getDefault());
dateFormat.format(date);
Date date = new Date(milliseconds);
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
dateFormat.format(date);
Date date = new Date(milliseconds);
DateFormat dateFormat = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.getDefault());
dateFormat.format(date);
আপনি অন্যান্য তারিখ শৈলী এবং সময় শৈলী ব্যবহার করতে পারেন। শৈলী সম্পর্কে আরও তথ্য এখানে ।
সংক্ষিপ্ততম উপায়:
// 2019-03-29 16:11
String.format("%1$tY-%<tm-%<td %<tR", Calendar.getInstance())
%tR
সংক্ষিপ্ত %tH:%tM
, এর <
অর্থ শেষ প্যারামিটারটি পুনরায় ব্যবহার করা ( 1$
)।
এটি সমান String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM", Calendar.getInstance())
https://developer.android.com/reference/java/util/Formatter.html
চেষ্টা করুন:
event.putExtra("startTime", "10/05/2012");
এবং আপনি যখন পাস ভেরিয়েবল অ্যাক্সেস করতে হবে:
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(bundle.getString("startTime"));
আমি এটি এর মতো ব্যবহার করি:
public class DateUtils {
static DateUtils instance;
private final DateFormat dateFormat;
private final DateFormat timeFormat;
private DateUtils() {
dateFormat = android.text.format.DateFormat.getDateFormat(MainApplication.context);
timeFormat = android.text.format.DateFormat.getTimeFormat(MainApplication.context);
}
public static DateUtils getInstance() {
if (instance == null) {
instance = new DateUtils();
}
return instance;
}
public synchronized static String formatDateTime(long timestamp) {
long milliseconds = timestamp * 1000;
Date dateTime = new Date(milliseconds);
String date = getInstance().dateFormat.format(dateTime);
String time = getInstance().timeFormat.format(dateTime);
return date + " " + time;
}
}
জাভা.ইটি.এল.ডেট এবং .ক্যালেন্ডার এবং জাভাতে (এবং অ্যান্ড্রয়েড) সিম্পলডেট ফরমেট কুখ্যাত সমস্যাযুক্ত। এগুলি এড়িয়ে চলুন। তারা এতটাই খারাপ যে সান / ওরাকল তাদের ছেড়ে দিয়েছিল, জাভা 8-তে নতুন জাভা.টাইম প্যাকেজ সরবরাহ করেছে (অ্যান্ড্রয়েডে 2014 তে নয়)। নতুন java.time
দ্বারা অনুপ্রাণিত হয় Joda-টাইম গ্রন্থাগার।
জোদা-টাইম অ্যান্ড্রয়েডে কাজ করে।
অনেক উদাহরণ এবং প্রচুর আলোচনার জন্য "জোদা" এর জন্য স্ট্যাকওভারফ্লো অনুসন্ধান করুন।
জোদা-সময় ২.৪ ব্যবহার করে উত্স কোডের একটি টিডবিত।
স্ট্যান্ডার্ড ফর্ম্যাট।
String output = DateTime.now().toString();
// Current date-time in user's default time zone with a String representation formatted to the ISO 8601 standard.
স্থানীয় ফর্ম্যাট।
String output = DateTimeFormat.forStyle( "FF" ).print( DateTime.now() );
// Full (long) format localized for this user's language and culture.
২০১ to-এ ফিরে আসি, যখন আমি ফর্ম্যাটটি কাস্টমাইজ করতে চাই (ডিভাইস কনফিগারেশন অনুসারে নয়, আপনি যেমন বলেন ...) আমি সাধারণত স্ট্রিং রিসোর্স ফাইলটি ব্যবহার করি:
স্ট্রিং.এক্সএমএল:
<string name="myDateFormat"><xliff:g id="myDateFormat">%1$td/%1$tm/%1$tY</xliff:g></string>
ক্রিয়াকলাপে:
Log.d(TAG, "my custom date format: "+getString(R.string.myDateFormat, new Date()));
এটি নতুন ডেট বাইন্ডিং লাইব্রেরি প্রকাশের সাথেও কার্যকর ।
সুতরাং লেআউট ফাইলটিতে আমার এরকম কিছু থাকতে পারে:
<TextView
android:id="@+id/text_release_date"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="2dp"
android:text="@{@string/myDateFormat(vm.releaseDate)}"
tools:text="0000"
/>
এবং জাভা ক্লাসে:
MovieDetailViewModel vm = new MovieDetailViewModel();
vm.setReleaseDate(new Date());
অ্যান্ড্রয়েড টাইম ক্লাসটি 3 ফর্ম্যাটিং পদ্ধতি সরবরাহ করে http://developer.android.com/references/android/text/format/Time.html
এটি আমি এটি করেছিলাম:
/**
* This method will format the data from the android Time class (eg. myTime.setToNow()) into the format
* Date: dd.mm.yy Time: hh.mm.ss
*/
private String formatTime(String time)
{
String fullTime= "";
String[] sa = new String[2];
if(time.length()>1)
{
Time t = new Time(Time.getCurrentTimezone());
t.parse(time);
// or t.setToNow();
String formattedTime = t.format("%d.%m.%Y %H.%M.%S");
int x = 0;
for(String s : formattedTime.split("\\s",2))
{
System.out.println("Value = " + s);
sa[x] = s;
x++;
}
fullTime = "Date: " + sa[0] + " Time: " + sa[1];
}
else{
fullTime = "No time data";
}
return fullTime;
}
আমি আশা করি সহায়ক :-)
এটি অনেক দেরি হয়ে গেছে তবে এটি কারওর পক্ষে সহায়তা করতে পারে
DateFormat.format(format, timeInMillis);
format
আপনার কি ফর্ম্যাট প্রয়োজন তা এখানে
উদা: "এইচএইচ: মিমি" 15:30 এ ফিরে আসে