মিলি সেকেন্ডে বর্তমান তারিখ পান


94

কেউ কি আমাকে ধারণা দিতে পারে যে কীভাবে বর্তমান তারিখটি মিলি সেকেন্ডে পাবেন?



আপনি যখন মিলি সেকেন্ডে বর্তমান তারিখটি বলবেন, আপনার অর্থ কী? আপনি একটি নির্দিষ্ট তারিখের জন্য আপনার প্রত্যাশিত আউটপুট উদাহরণ দিতে পারেন?
lnafziger

উত্তর:


103

এটি করার বিভিন্ন উপায় রয়েছে, যদিও আমার ব্যক্তিগত পছন্দটি হ'ল:

CFAbsoluteTime timeInSeconds = CFAbsoluteTimeGetCurrent();

আপনি এই পদ্ধতি সম্পর্কে এখানে আরও পড়তে পারেন । আপনি একটি এনএসডিট অবজেক্টও তৈরি করতে পারেন এবং টাইম ইনটারওয়ালসিনস ১৯70০ কল করে সময় পাবেন যা 1/1/1970 সাল থেকে সেকেন্ড ফিরে আসে :

NSTimeInterval timeInSeconds = [[NSDate date] timeIntervalSince1970];

এবং সুইফটে:

let timeInSeconds: TimeInterval = Date().timeIntervalSince1970

4
আমি এনএসটিমেইন্টারভাল মিলিসেকেন্ডেড তারিখের নিম্নলিখিত কোডটি চেষ্টা করে দেখছি = ([[এনএসডি তারিখ] সময়IntervalSince1970] * 1000); এনএসএলগ (@ "didReieveResponse ----% d", মিলিসেকেন্ডেড তারিখ);
শিভা

4
সমস্যাটি এনএসএলগের বিবৃতিতে। এনএসটিমেআইন্টারওয়াল একটি টাইপফিড ডাবল। সুতরাং আপনার% d এর পরিবর্তে% f ব্যবহার করা উচিত।
পাভেল

55
[[এনএসডেটের তারিখ] সময়আইন্টারওয়ালসিনস ১৯70০] একটি এনএসটিমেইন্টারওয়াল দেয়, যা সময়কাল সেকেন্ডে, মিলি-সেকেন্ড নয়।
এরিক ভ্যান ডের নিউট

12
দ্রষ্টব্য যে CFAbsoluteTimeGetCurrent()রেফারেন্স তারিখের তুলনায় সময়টি ফেরত দেয় Jan 1 2001 00:00:00 GMT। প্রশ্নে একটি রেফারেন্সের তারিখ দেওয়া হয়নি, তবে সচেতন থাকুন যে এটি কোনও ইউএনএক্স টাইমস্ট্যাম্প নয়।
nyi

4
[[এনএসডেটের তারিখ] সময়আইন্টারভালসিন্স ১৯70০] সেকেন্ডে সময় ফিরিয়ে দেয় মিলিসেকেন্ডে নয়।
স্যাপলগিক্স

61

এনএসটিটাইম ইন্টারভালটি সরাসরি আমার জন্য দীর্ঘ প্রবাহিত করা হয়েছে, সুতরাং পরিবর্তে আমাকে আরও দীর্ঘ কাস্ট করতে হয়েছিল।

long long milliseconds = (long long)([[NSDate date] timeIntervalSince1970] * 1000.0);

ফলাফলটি ইউনিক্সের মতো ১৩ ডিজিটের টাইমস্ট্যাম্প।


4
এটি প্রকৃত মিলিসেকেন্ডগুলিতে ফিরে আসবে না কারণ সময়সর্বস্ব সাইন ১৯৯০ সেকেন্ডের ব্যবধানে ফিরে আসে, সুতরাং আমাদের পছন্দসই মিলিস যথার্থতা থাকবে না।
ড্যান্পে

9
timeIntervalSince1970 পদ্ধতি পুরো সংখ্যার উপর সেকেন্ডে আগমন করে, তবে এটি একটি হল doubleএ কুয়াটি arithmetically মিলিসেকেন্ড রূপান্তরিত করা যেতে পারে ভগ্ন দ্বিতীয় অন্তর্ভুক্ত। অতএব, 1000 দ্বারা গুণ।
উইলেইম

@ উইলেম্যাপ ইউপ, আপনি ঠিক বলেছেন আমি পরে এটি বের করেছিলাম
ডানপে

4
long long? এই
ল্যাংটি

@ user924 আরও সম্মত হতে পারে না। এজন্য আমি এটি লেখা বন্ধ করে দিয়েছি। ;)
wileymab

10
NSTimeInterval milisecondedDate = ([[NSDate date] timeIntervalSince1970] * 1000);

আমি এনএসটিমেইন্টারভাল মিলিসেকেন্ডেড তারিখের নিম্নলিখিত কোডটি চেষ্টা করে দেখছি = ([[এনএসডি তারিখ] সময়IntervalSince1970] * 1000); এনএসএলগ (@ "didReieveResponse ----% d", মিলিসেকেন্ডেড তারিখ); - তবে এটি নেতিবাচক ভ্যালিতে মান দেখাচ্ছে - যেমন রেসপন্সটাইম ---- 556610175 রেসপন্সটাইম ---- -1548754395
শিভা

4
% d এর পরিবর্তে% f স্থানধারক ব্যবহার করে দেখুন। যদি এটি সাহায্য না করে - 1000 দ্বারা গুণটি সরিয়ে দিন
এম্যান্টাস

@ আইমান্তাস, যখন আমি% f ব্যবহার করার চেষ্টা করি ... আমি রেসপন্স সময় অনুসারে সময় পাচ্ছি = 1306494959011.239014 প্রতিক্রিয়া সময় = 1306494910724.744141 এটি যদি এমএস হয় তবে উপরের সময়টি এক ঘণ্টারও বেশি।
সিভা

বর্তমান তারিখটি 1970 সাল থেকে সেকেন্ডে সময়ের ব্যবধান You আপনি রেফারেন্স তারিখের কোনও কিছুই উল্লেখ করেন নি mention
আইমান্তাস

আমি কেবল বর্তমান তারিখের সময় ব্যবধান গ্রহণ করব
সিভা

8
extension NSDate {

    func toMillis() -> NSNumber {
        return NSNumber(longLong:Int64(timeIntervalSince1970 * 1000))
    }

    static func fromMillis(millis: NSNumber?) -> NSDate? {
        return millis.map() { number in NSDate(timeIntervalSince1970: Double(number) / 1000)}
    }

    static func currentTimeInMillis() -> NSNumber {
        return NSDate().toMillis()
    }
}

7

আপনি কেবল এটি করতে পারেন:

long currentTime = (long)(NSTimeInterval)([[NSDate date] timeIntervalSince1970]);

এটি একটি মান এন মিলিসেকেন্ডে ফিরিয়ে দেবে, সুতরাং আপনি যদি ফলাফলের মানটি 1000 দ্বারা গুণ করেন (যেমন আমার আইমন্টাস প্রস্তাবিত) আপনি দীর্ঘ টাইপকে উপচে ফেলেছেন এবং এটির ফলস্বরূপ নেতিবাচক মান আসবে।

উদাহরণস্বরূপ, আমি যদি এখনই সেই কোডটি চালাই তবে এটির ফলাফল হবে

currentTime = 1357234941

এবং

currentTime /seconds / minutes / hours / days = years
1357234941 / 60 / 60 / 24 / 365 = 43.037637652207

5

@ জাভাজাভা আপনার সমাধানটি ভাল, তবে আপনি যদি জাভা বা জাভাস্ক্রিপ্টে (এবং অন্যান্য ভাষাগুলি) সময় স্ট্যাম্প ফর্ম্যাটের সাথে সামঞ্জস্য রাখতে 13 ডিজিটের দীর্ঘ মান রাখতে চান তবে এই পদ্ধতিটি ব্যবহার করুন:

NSTimeInterval time = ([[NSDate date] timeIntervalSince1970]); // returned as a double
long digits = (long)time; // this is the first 10 digits
int decimalDigits = (int)(fmod(time, 1) * 1000); // this will get the 3 missing digits
long timestamp = (digits * 1000) + decimalDigits;

বা (আপনার যদি স্ট্রিং দরকার হয়):

NSString *timestampString = [NSString stringWithFormat:@"%ld%d",digits ,decimalDigits];

এনএসএসটিরিং * টাইমস্ট্যাম্পস্ট্রিং = [এনএসএস স্ট্রিং উইথফর্ম্যাট: @ "% এলডি% 03 ডি", সংখ্যা, দশমিক ডিজিট]; আসলে সঠিক। আপনার ক্ষেত্রে যদি দশমিক ডিজিটের মান 100 এর চেয়ে কম হয় তবে ভুল ফলাফল দেখাবে।
পঙ্কজ ভার্মা

4

যেমনটা পূর্বে বর্ণিত, [[এনএসডেটের তারিখ] টাইম ইনটারওয়ালসিনস ১৯70০] একটি এনএসটাইমইন্টারওয়াল দেয়, যা সময়কাল সেকেন্ডে, মিলি-সেকেন্ড নয়।

আপনি নিজের পছন্দমতো ভাষাতে কীভাবে পেতে পারেন তা দেখতে আপনি https://currentmillis.com/ দেখতে পারেন। এখানে তালিকা -

ActionScript    (new Date()).time
C++ std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count()
C#.NET  DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
Clojure (System/currentTimeMillis)
Excel / Google Sheets*  = (NOW() - CELL_WITH_TIMEZONE_OFFSET_IN_HOURS/24 - DATE(1970,1,1)) * 86400000
Go / Golang time.Now().UnixNano() / 1000000
Hive*   unix_timestamp() * 1000
Java / Groovy / Kotlin  System.currentTimeMillis()
Javascript  new Date().getTime()
MySQL*  UNIX_TIMESTAMP() * 1000
Objective-C (long long)([[NSDate date] timeIntervalSince1970] * 1000.0)
OCaml   (1000.0 *. Unix.gettimeofday ())
Oracle PL/SQL*  SELECT (SYSDATE - TO_DATE('01-01-1970 00:00:00', 'DD-MM-YYYY HH24:MI:SS')) * 24 * 60 * 60 * 1000 FROM DUAL
Perl    use Time::HiRes qw(gettimeofday); print gettimeofday;
PHP round(microtime(true) * 1000)
PostgreSQL  extract(epoch FROM now()) * 1000
Python  int(round(time.time() * 1000))
Qt  QDateTime::currentMSecsSinceEpoch()
R*  as.numeric(Sys.time()) * 1000
Ruby    (Time.now.to_f * 1000).floor
Scala   val timestamp: Long = System.currentTimeMillis
SQL Server  DATEDIFF(ms, '1970-01-01 00:00:00', GETUTCDATE())
SQLite* STRFTIME('%s', 'now') * 1000
Swift*  let currentTime = NSDate().timeIntervalSince1970 * 1000
VBScript / ASP  offsetInMillis = 60000 * GetTimeZoneOffset()
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now()) * 1000 - offsetInMillis + Timer * 1000 mod 1000

উদ্দেশ্য সিআই এর জন্য এটি মুদ্রণের জন্য নীচের মতো কিছু করেছে -

long long mills = (long long)([[NSDate date] timeIntervalSince1970] * 1000.0);
 NSLog(@"Current date %lld", mills);

আশা করি এটি সাহায্য করে।


1

Cconvert NSTimeInterval milisecondedDateমান nsstringএবং মধ্যে যে রূপান্তর পর int


0

মিলিসেকেন্ডে বর্তমান তারিখ পেতে আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করতে পারেন।

[[NSDate date] timeIntervalSince1970];

বা

double CurrentTime = CACurrentMediaTime(); 

উত্স: আইফোন: বর্তমান মিলিসেকেন্ডগুলি কীভাবে পাবেন?


0
- (void)GetCurrentTimeStamp
    {
        NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init];
        [objDateformat setDateFormat:@"yyyy-MM-dd"];
        NSString    *strTime = [objDateformat stringFromDate:[NSDate date]];
        NSString    *strUTCTime = [self GetUTCDateTimeFromLocalTime:strTime];//You can pass your date but be carefull about your date format of NSDateFormatter.
        NSDate *objUTCDate  = [objDateformat dateFromString:strUTCTime];
        long long milliseconds = (long long)([objUTCDate timeIntervalSince1970] * 1000.0);

        NSString *strTimeStamp = [NSString stringWithFormat:@"%lld",milliseconds];
        NSLog(@"The Timestamp is = %@",strTimeStamp);
    }

 - (NSString *) GetUTCDateTimeFromLocalTime:(NSString *)IN_strLocalTime
    {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyy-MM-dd"];
        NSDate  *objDate    = [dateFormatter dateFromString:IN_strLocalTime];
        [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
        NSString *strDateTime   = [dateFormatter stringFromDate:objDate];
        return strDateTime;
    }

0

মিলি সেকেন্ডে সময় পেতে এটি ব্যবহার করুন (long)(NSTimeInterval)([[NSDate date] timeIntervalSince1970])


0

তারিখের একটি এক্সটেনশন সম্ভবত এটি সম্পর্কে সর্বোত্তম উপায়।

extension NSDate {
    func msFromEpoch() -> Double {
        return self.timeIntervalSince1970 * 1000
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.