রুবিতে ইউটিসি টাইমস্ট্যাম্প কিভাবে পাবেন?


উত্তর:


117
time = Time.now.getutc

নীতি: আমার চোখে টাইমস্ট্যাম্প ঠিক যে: সময় একটি বিন্দু। এটি কোনও বস্তুর সাথে সঠিকভাবে উপস্থাপন করা যেতে পারে। আপনার যদি অন্য কোনও কিছু প্রয়োজন হয়, যেমন একটি স্কেলারের মান, যেমন ইউনিক্স পর্বের কয়েক সেকেন্ড পরে, 1601 সাল থেকে 100-এনএস অন্তর বা সম্ভবত কোনও উদ্দেশ্যে প্রদর্শিত স্ট্রিং বা একটি ডাটাবেসে টাইমস্ট্যাম্প সংরক্ষণ করার জন্য, আপনি সহজেই অবজেক্ট থেকে এটি পেতে পারেন। তবে এটি আপনার ব্যবহারের উপর নির্ভর করে।

বলা হচ্ছে যে po সত্যিকারের টাইমস্ট্যাম্পটি সেকেন্ডের সংখ্যার পরে যেহেতু ইউনিক্সের মহাকাশটি point বিন্দুটি কিছুটা অনুপস্থিত, কারণ এটি একটি সময়কে একটি পয়েন্ট উপস্থাপনের এক উপায়, তবে এটির জন্য এটি অতিরিক্ত তথ্যেরও প্রয়োজন যে আপনি কীভাবে কাজ করছেন তা জানার জন্য একটি সময় এবং একটি সংখ্যা। একটি Timeবিষয় সময়মত একটি পয়েন্ট উপস্থাপন করে এবং এটি কী তা স্পষ্ট করে এই সমস্যাটি সুন্দরভাবে সমাধান করে ।


93
এটি সময় অবজেক্ট দেয়, আপনার উচিত সময়.নিউ.টো_আইকে একটি সত্য টাইমস্ট্যাম্পের জন্য
rafamvc

3
আমার অভিমত একটি অবজেক্ট যথেষ্ট টাইমস্ট্যাম্পি এবং আপনার এখনও আপনার প্রয়োজনীয় সমস্ত স্বাধীনতা রয়েছে। এটি একটি স্কেলারের মানতে হ্রাস করা বেশিরভাগ ক্ষেত্রে সত্যই প্রয়োজন হয় না।
জোয়ি

2
টাইমস্ট্যাম্পগুলি যুগের সাথে তুলনামূলক - আপনি কোন টাইম জোনে রয়েছেন তা বিবেচ্য নয় man মনজিকভের উত্তরটি সবচেয়ে ভাল।
রায়ান মোহর

2
কেন ইউনিক্স টাইমস্ট্যাম্প ব্যবহার করবেন না তার একটি দুর্দান্ত ব্যাখ্যা করার পরেও এটি ওপি প্রশ্নের উত্তর দেয় না (আমি এই পোস্টটি খুঁজে পাওয়ার পরে আমার যে একই প্রশ্ন ছিল)। ইউনিক্স টাইমস্ট্যাম্পগুলি অনেক ক্ষেত্রে প্রয়োজন (যেমন, APIs এর জন্য)। ব্যাখ্যার পরেও, এই উত্তরটি টাইমস্ট্যাম্প পাওয়ার আসল উপায় দেয়নি।
আটকে

5
@ স্টকজ, কোনও অবস্থাতেই প্রশ্নটিতে একটি ইউনিক্স টাইমস্ট্যাম্পের উল্লেখ নেই। আমি কেবল এই উত্তরের জন্য ডাউনভিটগুলি পেতে থাকি কারণ লোকেরা মনে করে যে »টাইমস্ট্যাম্প == ইউনিক্স সময় to, সুতরাং ব্যাখ্যাটি।
জোয়

247

আপনি এই ব্যবহার করতে পারে: Time.now.to_i


1
সময়.ন.গেট.টুট.টো_আই করার জন্য কি এটি আরও বুদ্ধিমান হবে? বা এটি মূলত সমতুল্য?
আটল

20
টাইমস্ট্যাম্প সমস্ত টাইম অঞ্চলগুলিতে সমান। :)
মনজিকভ

2
ওহ হ্যাঁ, দুহ। ব্রেইনফার্ট প্রশ্ন। :)
আটকে

এটি সবচেয়ে উপযুক্ত প্রতিক্রিয়া!
ডার্লান ডিয়েটারিচ

46

আমার মতে ডিফল্ট বিন্যাসটি খুব কার্যকর নয়। আমি ISO8601 পছন্দ করি কারণ এটি বাছাইযোগ্য, তুলনামূলকভাবে কমপ্যাক্ট এবং ব্যাপকভাবে স্বীকৃত:

>> require 'time'
=> true
>> Time.now.utc.iso8601
=> "2011-07-28T23:14:04Z"

1
লক্ষ্য করুন এই পদ্ধতি ActiveSupport থেকে আসে, মানক লাইব্রেরিতে না rubydoc.info/docs/rails/ActiveSupport%2FTimeWithZone:iso8601
n0nick

3
@ n0nick আপনি কি 2.0- তে নিশ্চিত? আমি জানি যে আমি এটি "ভ্যানিলা" রেলগুলি ছাড়া ইনস্টলগুলিতে ব্যবহার করেছি এবং এটি ভিতরে /usr/share/ruby/2.0/time.rb
টিম সিলভেস্টার

15

সাধারণত টাইমস্ট্যাম্পের কোনও টাইমজোন থাকে না।

% irb
> Time.now.to_i == Time.now.getutc.to_i
=> true

1
to_fআরও ভাল হবে
xis

1
পরিস্থিতির উপর নির্ভর করে.
ইউকি মাতসুকুরা

1
একটি টাইমস্ট্যাম্পের একটি সময় অঞ্চল কখন থাকে ?
ডেনিস

1
টাইমস্ট্যাম্প সময় অঞ্চল সম্পর্কিত নয়। অন্য কথায়, টাইমস্ট্যাম্পটি ইউটিসি।
ইউকী মাতসুকুরা

1
@ ইউকিমাটসুকুরা আসলে এটিও পুরোপুরি সঠিক নয়। একটি টাইম স্ট্যাম্প এমনকি কোনও সময় অঞ্চলকে উপস্থাপন করে না, সুতরাং "টাইমস্ট্যাম্পটি ইউটিসি" যতটা সত্য "টাইমস্ট্যাম্পটি হাতির পোপ" is সমস্যা প্রতিনিধিত্ব মধ্যে। বেশিরভাগ ডেভগুলি এটিকে ইউনিক্স টাইম স্ট্যাম্প হিসাবে উপস্থাপন করে (এটি ইউটিসি বা অন্য কোনও টাইম অঞ্চলকে কেবল একটি পূর্ণসংখ্যার মান হিসাবে নির্দেশ করে না)।
পেলমিস্টার

10

আপনার যদি কোনও মানব-পঠনযোগ্য টাইমস্ট্যাম্পের প্রয়োজন হয় (যেমন রেল মাইগ্রেশন রয়েছে) প্রাক্তন। " 20190527141340 "

Time.now.utc.to_formatted_s(:number)  # using Rails

Time.now.utc.strftime("%Y%m%d%H%M%S") # using Ruby

7

এর গ্রানুলারিটি সেকেন্ডে দেওয়া সহ একটি টাইমস্ট্যাম্প কী ভাল? আমি এটি অনেক বেশি ব্যবহারিকর সাথে কাজ করে দেখছি Time.now.to_f। হেক, আপনি এমনকি একটি নিক্ষেপ করা হতে পারে to_s.sub('.','')দশমিক বিন্দু পরিত্রাণ পেতে, বা ভালো একটি typecast পালন করুন: Integer(1e6*Time.now.to_f)


ধন্যবাদ। আমি এটি ব্যবহার করেছি: Integer(1e3*Time.now.to_f)যাতে আমার সার্ভারের পাশের রুবি টাইমস্ট্যাম্পটি ক্লায়েন্ট সাইড জাভাস্ক্রিপ্টের মতো ছিলDate.now()
জোশওয়ায়ার


-2

time = Time.zone.now()

এটি হিসাবে কাজ করবে

irb> Time.zone.now
=> 2017-12-02 12:06:41 UTC

জোনাথন, আপনি কি আমাকে এই উত্তরে ভুল বলতে পারেন?
তারকা

1
এটি রুবি জিনিসগুলি কি স্থানীয় সময় অঞ্চল তা নির্ভর করে। স্থানীয় টিজেডটি ইউটিসি হলেই এটি আশানুরূপভাবে কাজ করবে।
মাস্টারশেফিনেটর

-6

যথাযথ Time.now.getutc.to_iউপায়টি হ'ল সময় জরিপের পরিমাণের জন্য যথাযথভাবে সময় নির্ধারণের জন্য যথাক্রমে পূর্ণসংখ্যার প্রদর্শন করা সর্বদা সময় অঞ্চল পার্থক্যের কারণে utc টাইমস্ট্যাম্পের মতো হয় না।


7
বাকি সবাই বলেছিল, সুতরাং কেন এটি অনুলিপি করুন, কোনও নতুন তথ্য ছাড়াই, 3 বছর দেরি?
কাস্পার লি

2
এবং কোনও বিরামচিহ্নের সাহায্যে 1 বাক্যটি তৈরি হবে যা কিছুটা দীর্ঘ এবং এটি সম্পূর্ণ সিনট্যাক্টিক্যালি সঠিক নয়, আরও পরিষ্কার।
এমিল ভ্রিজডাগস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.