আমি এর মতো বর্তমান টাইমস্ট্যাম্পটি পেতে চাই: 1320917972
int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts = tsTemp.toString();
আমি এর মতো বর্তমান টাইমস্ট্যাম্পটি পেতে চাই: 1320917972
int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts = tsTemp.toString();
উত্তর:
বিকাশকারীদের ব্লগ থেকে:
System.currentTimeMillis()
যুগের পর থেকে মিলি সেকেন্ড প্রকাশ করা মানক "প্রাচীর" ঘড়ি (সময় এবং তারিখ)। প্রাচীর ঘড়িটি ব্যবহারকারী বা ফোন নেটওয়ার্ক দ্বারা সেট করা যেতে পারে ( সেটকর্ন্টটাইমমিলিস (দীর্ঘ) দেখুন ), যাতে সময়টি পিছনে বা অপ্রত্যাশিতভাবে এগিয়ে যেতে পারে। এই ঘড়িটি কেবল তখন ব্যবহার করা উচিত যখন বাস্তব-বিশ্বের তারিখ এবং সময়গুলির সাথে চিঠিপত্র গুরুত্বপূর্ণ, যেমন কোনও ক্যালেন্ডারে বা অ্যালার্ম ক্লক অ্যাপ্লিকেশনটিতে। বিরতি বা অতিবাহিত সময়ের পরিমাপের জন্য আলাদা ঘড়ি ব্যবহার করা উচিত। আপনি ব্যবহার করে থাকেন System.currentTimeMillis()
, শোনা বিবেচনা ACTION_TIME_TICK
, ACTION_TIME_CHANGED
এবং ACTION_TIMEZONE_CHANGED
ইন্টেন্ট সম্প্রচার খুঁজে বের করতে যখন সময় পরিবর্তন।
System.nanoTime()
একটি বিকল্প System.currentTimeMillis()
এবং এটির কোনও অনাকাঙ্ক্ষিত ওঠানামা নেই, এবং সময়কাল পার্থক্যগুলি পরিমাপের জন্য ডিজাইন করা হয়েছে।
System.nanoTime()
প্রাচীর ঘড়ির সময় প্রদর্শনের জন্য উপযুক্ত নয়। এই উদ্দেশ্যে, System.currentTimeMillis()
পরিবর্তে ব্যবহার করুন।
1320917972 হ'ল ইউনিক্স টাইমস্ট্যাম্পটি 1 জানুয়ারী, 1970 টি ইউটিসি থেকে 00:00:00 ইউটিসি থেকে সেকেন্ডের সংখ্যা ব্যবহার করে TimeUnit
unit আপনি ইউনিট রূপান্তরকরণের জন্য ক্লাস ব্যবহার করতে পারেন - System.currentTimeMillis()
কয়েক সেকেন্ডে।
String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
আপনি সরলডেটফর্ম্যাট ক্লাসটি ব্যবহার করতে পারেন :
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
String format = s.format(new Date());
বর্তমান সময়ের স্ট্যাম্প পেতে নীচের পদ্ধতিটি ব্যবহার করুন। এটা আমার জন্য ভালই কাজ করে।
/**
*
* @return yyyy-MM-dd HH:mm:ss formate date as string
*/
public static String getCurrentTimeStamp(){
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentDateTime = dateFormat.format(new Date()); // Find todays date
return currentDateTime;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
এখানে একটি মানব-পঠনযোগ্য টাইম স্ট্যাম্প যা কোনও ফাইলের নামে ব্যবহৃত হতে পারে, যদি কারও আমার প্রয়োজন মতো একই জিনিস প্রয়োজন হয়:
package com.example.xyz;
import android.text.format.Time;
/**
* Clock utility.
*/
public class Clock {
/**
* Get current time in human-readable form.
* @return current time as a string.
*/
public static String getNow() {
Time now = new Time();
now.setToNow();
String sTime = now.format("%Y_%m_%d %T");
return sTime;
}
/**
* Get current time in human-readable form without spaces and special characters.
* The returned value may be used to compose a file name.
* @return current time as a string.
*/
public static String getTimeStamp() {
Time now = new Time();
now.setToNow();
String sTime = now.format("%Y_%m_%d_%H_%M_%S");
return sTime;
}
}
এগুলি চেষ্টা করে দেখুন
time.setText(String.valueOf(System.currentTimeMillis()));
এবং টাইমস্ট্যাম্প থেকে টাইম ফর্ম্যাট
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dateString = formatter.format(new Date(Long.parseLong(time.getText().toString())));
time.setText(dateString);
আমার আধুনিক উত্তরটি অবদান রাখতে পছন্দ করা উচিত।
String ts = String.valueOf(Instant.now().getEpochSecond());
System.out.println(ts);
এখনই চলমান অবস্থায় আউটপুট:
1543320466
যদিও 1000 দ্বারা বিভাজন অনেকের কাছে অবাক হওয়ার মতো নয়, আপনার নিজের সময় রূপান্তরগুলি করা খুব দ্রুত পড়তে অসুবিধা হতে পারে, তাই আপনি যখন এড়াতে পারেন তখন এটির অভ্যাসের অভ্যাসটি বদ অভ্যাস।
Instant
বর্গ যে আমি ব্যবহার করছি java.time, আধুনিক জাভা তারিখ এবং সময় API- এর অংশ। এটি নতুন অ্যান্ড্রয়েড সংস্করণগুলি, এপিআই স্তরের 26 এবং তারপরে বিল্ট ইন। আপনি যদি পুরানো অ্যান্ড্রয়েডের জন্য প্রোগ্রামিং করেন তবে আপনি ব্যাকপোর্টটি পেতে পারেন, নীচে দেখুন। আপনি যদি তা করতে না চান, বোধগম্য, আমি এখনও একটি অন্তর্নির্মিত রূপান্তর ব্যবহার করব:
String ts = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
System.out.println(ts);
এটি সিলস্কেজের উত্তর হিসাবে একই। আউটপুট আগের মতোই।
হ্যাঁ, জাভা.টাইম পুরানো এবং আরও নতুন অ্যান্ড্রয়েড ডিভাইসে দুর্দান্তভাবে কাজ করে। এটির জন্য কমপক্ষে জাভা 6 প্রয়োজন ।
org.threeten.bp
সাব-প্যাকেজগুলি সহ আপনি তারিখ এবং সময় ক্লাসগুলি আমদানি করেছেন তা নিশ্চিত করুন ।java.time
।java.time
প্রথম বর্ণিত হয়েছিল describedjava.time
জাভা 6 এবং 7 (জেএসআর -310 এর জন্য থ্রিটেন) এর ব্যাকপোর্ট।আমি হিটসের উত্তরটি ব্যবহার করার পরামর্শ দিচ্ছি, তবে একটি লোকেল ফর্ম্যাট যুক্ত করে অ্যান্ড্রয়েড বিকাশকারীরা এভাবে পরামর্শ দেয় :
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
return dateFormat.format(new Date()); // Find todays date
} catch (Exception e) {
e.printStackTrace();
return null;
}
এই কোডটি কোটলিন সংস্করণ। বৈকল্পিক যুগের সময় দেওয়ার জন্য আমার শেষ অঙ্কে একটি এলোমেলো শ্যাফেল পূর্ণসংখ্যার যোগ করার জন্য আমার আরেকটি ধারণা রয়েছে।
কোটলিন সংস্করণ
val randomVariance = (0..100).shuffled().first()
val currentEpoch = (System.currentTimeMilis()/1000) + randomVariance
val deltaEpoch = oldEpoch - currentEpoch
আমি মনে করি এই কোডটি ব্যবহার করা আরও ভাল হবে তবে অ্যান্ড্রয়েড সংস্করণ 26 বা তার বেশি নির্ভর করে
java.util.Date
,java.util.Calendar
এবংTimestamp
এখন উত্তরাধিকার দ্বারা supplanted java.time ক্লাস। জাভা.টাইম কার্যকারিতা বেশিরভাগ থ্রিটেন-ব্যাকপোর্ট প্রকল্পে জাভা 6 এবং জাভা 7 -এ ব্যাকপোর্ট করা হয় । থ্রিটেনএবিপি প্রকল্পে পূর্ববর্তী অ্যান্ড্রয়েডের জন্য আরও অভিযোজিত । দেখুন ThreeTenABP কীভাবে ব্যবহার করতে হয় ... ।