তারিখ () থেকে ইউনিক্স টাইমস্ট্যাম্প প্রাপ্ত


85

আমি কন্ট্রাক্টরের Date()মধ্যে longমান স্থাপন করে একটি ইউনিক্স টাইমস্ট্যাম্পকে কোনও বস্তুতে রূপান্তর করতে পারি Date()। যেমন জন্য: আমি এটা যেমন থাকতে পারে new Date(1318762128031)

তবে তার পরে, আমি কীভাবে Date()অবজেক্ট থেকে ইউনিক্স টাইমস্ট্যাম্পটি ফিরে পেতে পারি ?


আপনি এখনও আপনার তারিখ অবজেক্টের দীর্ঘ মূল্য পেতে পারেন, না?
কেন্ট

@ এক্সঅন: আপনি দীর্ঘ নির্মাণকারী ব্যবহার করে কোনও ইউনিক্স টাইমস্ট্যাম্পকে তারিখে রূপান্তর করছেন না। একটি ইউনিক্স টাইমস্ট্যাম্প, যেমন আমি জ্যাক্রাবিটের উত্তরে মন্তব্য করেছি, সেকেন্ডে প্রকাশ করা হয়েছে, মিলিসেকেন্ড নয়। এখানে: en.wikipedia.org/wiki/Unix_time এবং এখানে: unixtimestamp.com/index.php সেকেন্ড। মিলিসেকেন্ড নয়।
ট্যাকটিক্যাল

উত্তর:


95

getTime()1970 সালের 1 জানুয়ারি থেকে GMT কনস্ট্রাক্টরের কাছে থেকে মিলিসেকেন্ডগুলি পুনরুদ্ধার করে। ইউনিক্স সময় (একই, তবে কয়েক সেকেন্ডের মধ্যে) পাওয়া খুব বেশি কঠিন হওয়া উচিত নয় ।


4
ধন্যবাদ আমি এটিকে একটি স্থির ফাংশন ডেট.জেটটাইম (নতুন তারিখ ()) হিসাবে ভুলভাবে মনে রেখেছিলাম যা কাজ করে না এবং ভেবেছিল যে কী চলছে।
কারভেন

47
@ জ্যাক্রাবিট: আসলে গেটটাইম () ইউনিক্স টাইমস্ট্যাম্পটি ফিরিয়ে দেয় না "ইউনিক্স টাইমস্ট্যাম্প * 1000"। ইউনিক্স টাইমস্ট্যাম্প সম্পর্কে সম্মত সংজ্ঞাটি হ'ল এটি দ্বিতীয় যুগের পর থেকে মিলিসেকেন্ড নয়, সময় দেয়; )
ট্যাকটিক্যাল

4
@ ট্যাকটিক্যাল কোডার জ্যাক্রাবিট আরও সঠিক: এটি মিলিসেকেন্ডে ইউনিক্স-টাইমস্ট্যাম্পটি দেয়। হ্যাঁ, ইউনিক্স-টাইমস্ট্যাম্পটি সেকেন্ডে হতে সম্মত হয়েছে - তবে যদি আপনার উত্তরটি সত্য হয়, ( getTime() = unixTimestamp * 1000)) getTime()সর্বদা শেষে তিনটি জিরো ফিরিয়ে আনতে পারে তবে আসলে শেষ পর্যন্ত কোনও কিছুই ফিরে আসতে 000পারে 999, যার অর্থ এটির উচ্চতর রয়েছে মিলিসেকেন্ডের কারণে নির্ভুলতা এবং কেবল "* 1000" নয়। অর্থ: একটি বাস্তব ইউনিক্স টাইমস্ট্যাম্প * 1000 এর সাথে getTime()ফলাফলের তুলনা করা কেবলমাত্র ক্ষেত্রে ~ 0.1% এ সাফল্য অর্জন করবে।
26:58

রেকর্ডের জন্য, ফাংশনটি GMT-0 অঞ্চলে (গ্রিনউইচে) মিলিসেকেন্ডগুলি ফেরত দেয়, তাই আপনি এটিকে বিভিন্ন অঞ্চলে রূপান্তর করতে নিরাপদ থাকতে পারেন।
ওনাত কোরুকু


25
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

public class Timeconversion {
    private DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); //Specify your locale

    public long timeConversion(String time) {
        long unixTime = 0;
        dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); //Specify your timezone
        try {
            unixTime = dateFormat.parse(time).getTime();
            unixTime = unixTime / 1000;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return unixTime;
    }
}

6

জাভা 8-তে, getEpochSecondটাইমস্ট্যাম্পটি পাওয়ার জন্য নতুন তারিখের lib এবং পদ্ধতিটি ব্যবহার করা সুবিধাজনক (এটি দ্বিতীয় দিকে)

Instant.now().getEpochSecond();


তবে উপস্থাপিত কোডটি এই মুহুর্তের জন্য # সেকেন্ডের ফেরত দেয়
মিলান ভেলেবিত

সত্য, @ মিলনভেলিবিট। আপনি আপনার পছন্দসই প্রতিস্থাপন করতে হবে Instantপরিবর্তে Instant.now()। বা yourDesiredJavaUtilDate.toInstant()যদি আপনি Dateকোনও লিগ্যাসি এপিআই থেকে পুরানো ।
ওলে ভিভি

0

আমি জানি না আপনি জেএস বা জাভাতে জেএসে ইউনিক্স টাইমস্ট্যাম্প্ট পাওয়ার সহজতম উপায় (1/1/1970 থেকে এটি সেকেন্ডের মধ্যে সময়) এটি নিম্নরূপ:

var myDate = new Date();
console.log(+myDate); // +myDateObject give you the unix from that date

-1

SimpleDateFormatক্লাস ব্যবহার করুন । এর জাভাডোকটি একবার দেখুন: এটি কীভাবে ফর্ম্যাট স্যুইচগুলি ব্যবহার করবেন তা ব্যাখ্যা করে।

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