Go এ ফরম্যাট করা স্ট্রিং হিসাবে বর্তমান সময় পাবেন?


131

Go এ বর্তমান টাইমস্ট্যাম্প পাওয়ার এবং স্ট্রিংয়ে রূপান্তর করার সর্বোত্তম উপায় কী? আমার যেমন তারিখ এবং সময় উভয় প্রয়োজন। YYYYMMDDhhmmss ফর্ম্যাট।


উত্তর:


149

time.Now()ফাংশন এবং time.Format()পদ্ধতিটি ব্যবহার করুন ।

t := time.Now()
fmt.Println(t.Format("20060102150405"))

প্রিন্ট আউট 20110504111515, বা কমপক্ষে এটি কয়েক মিনিট আগে করেছে। (আমি পূর্ব দিবালোকের সময় আছি।) সময় প্যাকেজে সংজ্ঞায়িত ধ্রুবকগুলিতে বেশ কিছু প্রাক-সংজ্ঞায়িত সময় বিন্যাস রয়েছে ।

আপনি time.Now().UTC()যদি আপনার স্থানীয় সময় অঞ্চলের চেয়ে ইউটিসি না চান তবে আপনি ব্যবহার করতে পারেন ।


15
আমি অবশ্যই Kitchenধ্রুবকটি ( = "3:04PM")
tux21b

5
এই তথ্যের জন্য ধন্যবাদ। সময় প্যাকেজটি "20060102150405" পাস করার মাধ্যমে কীভাবে জানতে পারে, আমরা যা যাচ্ছি ঠিক তেমনি এটি সময় প্যাকেজের পূর্বনির্ধারিত ধ্রুবকগুলির মধ্যে নয়? টাইম প্যাকেজে (20060102150405) সেই তারিখ এবং সময়ের তাত্পর্যটি কী? এটি আমার কাছে কিছুটা কৌতূহলপূর্ণ বলে মনে হচ্ছে তবে যতক্ষণ এটি কাজ করে আমি মনে করি যতক্ষণ কোডিং করার সময় আমরা ত্রুটি না করি ততক্ষণ এটি বিবেচ্য নয়। আমি অনুমান করি যে তারা সেই ফর্ম্যাটটির জন্য একটি ধ্রুবক সরবরাহ করতে এবং স্ট্রিং প্যাটার্নের সাথে মেলে না fit
ব্রায়ানোহ

9
@ ব্রায়ানোহ: Golang.org/pkg/ সময়/# কনস্ট্যান্টস দেখুন এটি সময় "01/02 03:04:05 অপরাহ্ন '06 -0700" কারণ প্রতিটি উপাদানটির আলাদা সংখ্যা রয়েছে (1, 2, 3, ইত্যাদি), এটি সংখ্যাগুলি থেকে নির্ধারণ করতে পারে আপনি কোন উপাদানগুলি চান তা নির্ধারণ করতে পারে।
newacct

1
দয়া করে সেই সময়টি নোট করুন oc লোকালটাইম () আর অস্তিত্বহীন: নীচে আমার উত্তরটি Go 1.0.3 সামঞ্জস্যপূর্ণ হতে দেখুন
মুছে ফেলুন

71

অন্যান্য সমস্ত প্রতিক্রিয়া গুগল থেকে আসা এবং "টাইমস্ট্যাম্প ইন গো" খুঁজছেন এমন কারও জন্য খুব মিস-লিডিং! YYYYMMDDhhmmss একটি "টাইমস্ট্যাম্প" নয়।

চলার তারিখের "টাইমস্ট্যাম্প" পেতে (জানুয়ারী 1970 থেকে সেকেন্ডের সংখ্যা), সঠিক ফাংশনটি হ'ল ইউনিক্স () , এবং এটি সত্যই কোনও পূর্ণসংখ্যা ফেরত দেয়


8
আমি রাজী; প্রশ্ন খেতাবধারী করা উচিত "বর্তমান তারিখ" নয় "বর্তমান টাইমস্ট্যাম্প"
developerbmw

1
যদিও এটি দেরি হয়ে গেছে, আমি মনে করি .উনিক্স () golang.org/pkg/time/#Time.Unix এর দিকে নির্দেশ করা উচিত whose ইউনিক্স যার রিটার্ন টাইপটি int64।
জন্মগত

আপনি প্রযুক্তিগতভাবে সঠিক হওয়ার পরেও, আমি মনে করি আজকাল প্রচুর কোডার টাইমস্ট্যাম্পের সাথে লড়াই করে বলে, 'বর্তমান সময়ে কোনও ধরণের ফর্ম্যাট ফ্যাশন', যাতে সেই শিরোনাম বেশিরভাগের জন্যই সমান বিভ্রান্তিকর হবে।
রজার হিল

আমি একটি সম্পাদনার পরামর্শ দিয়েছি - Get current time as formatted string in Go?। আশা করি কেউ এটিকে অনুমোদন দেবেন।
akki

56

পাঠযোগ্যতার জন্য, সময় প্যাকেজে আরএফসি ধ্রুবক ব্যবহার করা ভাল (আমার মনে হয়)

import "fmt" 
import "time"

func main() {
    fmt.Println(time.Now().Format(time.RFC850))
}

4
এটি কীভাবে YYYYMMDDhhmmss উত্পাদন করে?
রড

2
আরএফসি Tuesday, 10-Nov-09 23:00:00 UTC RFC3339 = "2006-01-02T15:04:05Z07:00" 850 play.golang.org/p/XmobwWSz5pN
ক্রিস ম্যাককি

32

ব্যবহার করুন time.Now () এবং time.Format () ফাংশন (time.LocalTime যেমন () যান 1.0.3 হিসাবে আর বিদ্যমান নেই)

t := time.Now()
fmt.Println(t.Format("20060102150405"))

অনলাইন ডেমো (খেলার মাঠে অতীতে নির্দিষ্ট তারিখ সহ কিছু মনে করবেন না)


6
এবং আপনি এটিকে কেবল স্ট্রিং হিসাবে এটি ব্যবহার করতে পারেন:s := "Actual time is: "+time.Now().String()
মাইকেল

3

এই পোস্টে আরও তথ্য সন্ধান করুন: গোলংয়ে বিভিন্ন ফর্ম্যাটে বর্তমান তারিখ এবং সময় পান

এটি পূর্ববর্তী পোস্টে আপনি দেখতে পাবেন এমন বিভিন্ন ফর্ম্যাটের স্বাদ:

এখানে চিত্র বর্ণনা লিখুন


2

@ বাক্টিজমের প্রতিক্রিয়ার প্রতিধ্বনি হিসাবে, বর্তমান টাইমস্ট্যাম্পটি পুনরুদ্ধার করার উপায়টি (মিলিসেকেন্ডে, উদাহরণস্বরূপ):

msec := time.Now().UnixNano() / 1000000

সংস্থান: https://gobyexample.com/epoch


0

https://golang.org/src/time/format.go নির্দিষ্ট করা পার্সিং সময়ের 15জন্য সময় ব্যবহার করা হয়, 04কয়েক মিনিটের 05জন্য, কয়েক সেকেন্ডের জন্য ব্যবহৃত হয় ।

পার্স তারিখ জন্য 11, Jan, Januaryহয় মাসের জন্য, 02, Mon, Mondayমাসের দিনের জন্য 2006বছরের জন্য এবং অবশ্যই MSTজোন

তবে আপনি এই লেআউটটিও ব্যবহার করতে পারেন, যা আমি খুব সহজ বলে মনে করি। "Mon Jan 2 15:04:05 MST 2006"

    const layout = "Mon Jan 2 15:04:05 MST 2006"
    userTimeString := "Fri Dec 6 13:05:05 CET 2019"

    t, _ := time.Parse(layout, userTimeString)
    fmt.Println("Server: ", t.Format(time.RFC850))
    //Server:  Friday, 06-Dec-19 13:05:05 CET

    mumbai, _ := time.LoadLocation("Asia/Kolkata")
    mumbaiTime := t.In(mumbai)
    fmt.Println("Mumbai: ", mumbaiTime.Format(time.RFC850))
    //Mumbai:  Friday, 06-Dec-19 18:35:05 IST

ডেমো


-4

সঠিক প্রশ্নের উত্তর দিতে:

import "github.com/golang/protobuf/ptypes"

Timestamp, _ = ptypes.TimestampProto(time.Now())

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