সুইফটে ইউনিক্সের যুগের সময় পান


103

আপনি কীভাবে স্যুইফ্টে পর্ব থেকে সেকেন্ড পাবেন?


4
উদ্দেশ্য-সি হিসাবে একই - এনএসডিট ব্যবহার করুন।
gnasher729 15

4
আমি আপেল পণ্য বিকাশ এড়িয়ে চলেছি কারণ আমি উদ্দেশ্য-সি ঘৃণা করি। ফলস্বরূপ, আমি এটি শিখি না। এবং আমি জানি যে সুইফট সিনট্যাক্সটি কমপক্ষে কিছুটা আলাদা। শুধু আমাকে সিনট্যাক্সটি দেখান। নিজেকে কিছু সহজ SO খ্যাতি পান।
ক্রিস রেডফোর্ড


4
না, এটা সুইফট পদ্ধতির জন্য এন্ট্রি সরাসরি লিঙ্ক: - timeIntervalSince1970
zaph

4
আসলে আমি নির্দিষ্ট পদ্ধতির সাথে লিঙ্ক করেছি :)
মার্টিন আর

উত্তর:


163

আপনি কেবল এনএসডিটের timeIntervalSince1970ফাংশনটি ব্যবহার করতে পারেন ।

let timeInterval = NSDate().timeIntervalSince1970

7
নোট করুন এটি ফাউন্ডেশন আমদানি করা প্রয়োজন।
অ্যালব্লিউ

4
ফাউন্ডেশন ব্যবহার না করে কীভাবে?
মারিয়াস

4
আপনি ভিত্তি ব্যবহার করতে না চান তাহলে আপনি AFNetworking / AlamoFire (ব্যবহার করতে পারে github.com/Alamofire/Alamofire লোড করতে) currentmillis.com এবং তারপর পৃষ্ঠার HTML পার্স। নোট করুন যে আপনাকে নেটওয়ার্কিং বিলম্বের জন্য অ্যাকাউন্ট করতে হবে এবং সংযোগের জন্য পরীক্ষা করতে হবে। আমি শুধু ফাউন্ডেশন ব্যবহার করার সিদ্ধান্ত নিয়েছে ...
চেজ রবার্টস

4
কোন int হিসাবে সম্পর্কে?
স্টারহাউস

85

সুইফট 3.0 এর জন্য

Date().timeIntervalSince1970

4
ভাল একটা. এছাড়াও, লোকেরা স্ট্যাকওভারফ্লো
-

49
ইউনিক্স সময় বিন্যাসটি মিলিসেকেন্ড সহ। সুতরাং আন্ত (তারিখ ()। সময় অন্তর্বর্তী সিনেম 1970 * 1000)
চিপ-লাভ-এনওয়াই

10
@ চিপ-লাভ-এনওয়াই: এটি সত্য নয়। ইউনিক্স সময় 1 জানুয়ারি 1970, সেকেন্ডের সংখ্যার হিসাবে ইউএনসি time
মার্টিন আর

4
এটি একটি টাইমআইন্টারওয়াল দেয় , যা সেকোডে রয়েছে
ড্যানিয়েল

1

আপনি নিম্নলিখিত ব্যবহার করে তা পেতে পারেন

Int(Date().timeIntervalSince1970)

আপনি যদি একটি নির্দিষ্ট তারিখ পেতে চান তবে এটি বর্তমান তারিখের জন্য

Int(myDate.timeIntervalSince1970)

আপনি যদি ইউনিক্স সময় সূচনার সময় থেকে সুইফট তারিখের সময় রূপান্তর করতে চান, আপনি নিম্নলিখিত ব্যবহার করতে পারেন

let date = Date(timeIntervalSince1970: unixtEpochTime)

0
1 second      = -
1 millisecond = 1,000 seconds
1 microsecond = 1,000,000 seconds

timeIntervalSince1970"সাব-মিলিসেকেন্ড" নির্ভুলতা হিসাবে ডকুমেন্টেড যা স্যুইফ্টের সেকেন্ডে ফিরে আসে, যা আমি সাধারণত মাইক্রোসেকেন্ডগুলি বোঝায় তবে কখনও কখনও এক স্কেল (দশমিকের ডানদিকে একটি অঙ্ক) কম বা বেশি। এটি যখন 5 (দশমিকের পরে 5 ডিজিট) এর স্কেল দেয়, আমি জানি না যে সুইফট 0 টি পিছনে যাচ্ছে বা এটি 6 টি স্কেলস নির্ভুলতা তৈরি করতে পারে না। কিন্তু যখন এটি 7 এর স্কেলটি ফেরত দেয়, তখন অতিরিক্ত অঙ্কটি কেটে ফেলা যায় কারণ এটি মাইক্রোসেকেন্ড যথার্থতার বাইরে। সুতরাং, সামঞ্জস্য এবং নির্ভুলতা-সত্য মানের জন্য:

let preciseSeconds = Int(Date().timeIntervalSince1970)
let preciseMilliseconds = Int(Date().timeIntervalSince1970 * 1_000)
let preciseMicroseconds = Int(Date().timeIntervalSince1970 * 1_000_000) // most likely precise

দুর্ভাগ্যক্রমে, তবে, 2038 সালে, 32-বিট নম্বরগুলি ইউনিক্স টাইমস্ট্যাম্পের জন্য ব্যবহারযোগ্য হবে না এবং সেগুলি 64-বিট হতে হবে be

let seconds = Date().timeIntervalSince1970
let milliseconds = Date().timeIntervalSince1970 * 1_000
let microseconds = Date().timeIntervalSince1970 * 1_000_000

একটি এক্সটেনশন:

extension Date {
    var unixTimestamp: Int64 {
        return Int64(self.timeIntervalSince1970 * 1_000)
    }
}

Date().unixTimestamp

0

আপনি যদি ফাউন্ডেশন, অর্থাৎ লিনাক্স ব্যবহার ইত্যাদির জন্য আমদানি করতে না চান তবে আপনি নিম্নলিখিতটি কোরফাউন্ডেশন থেকে ব্যবহার করতে পারেন:

import CoreFoundation

let timestamp = CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970

আপনি কি জানেন যে কখন জিনিসগুলি তারিখ এবং বন্ধুরা ক্রস প্ল্যাটফর্ম হয়ে উঠতে পারে?
জোল্টন ম্যাটেক

@ জোল্টনম্যাটাক আমি শুনেছি তাদের খোলা জায়গায় ফাউন্ডেশনের আরও অনেকগুলি পুনরায় পরিকল্পনা করার পরিকল্পনা রয়েছে। আরও তথ্যের জন্য ফোরামস.ইউ.ইউ.ইফ.টি.আরজে একবার দেখুন।
রুশেভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.