2011-10-04 26 views
45

Git से मैं टाइमस्टैम्प प्राप्त कर सकते हैं:Git: समय क्षेत्र और टाइमस्टैम्प प्रारूप

"2011-10-04 12:58:36 -0600" 

लेकिन वहाँ यह दिखाने के लिए किसी भी तरह से है:

"2011-10-04 06:58:36" 

तो सब मैं चाहता हूँ से छुटकारा पाने के लिए है -0600 टाइमज़ोन ऑफ़सेट। मैं यह कैसे कर सकता हूँ? धन्यवाद।

+0

एफवाईआई, '2011-10-04 12:58:36 -0600'' 2011-10-04 18: 58: 36' यूटीसी होगा। आपने अपने उदाहरण में गलत तरीके से रूपांतरित किया है। –

उत्तर

46

यदि आप Git लॉग के बारे में पूछते हैं, आप कोशिश करते हैं और से सबसे सही रूप का चयन कर सकते

git log --date={relative,local,default,iso,rfc} 

--date = स्थानीय लगता है के रूप में सबसे अच्छा उम्मीदवार

+37

यह "स्थायी" बनाने के लिए, "git config --global log.date local" का उपयोग करें। – rickumali

+10

'स्थानीय 'काम करता है। जाहिर है, एक प्रतिबद्धता में अपना टाइमज़ोन शामिल है, लेकिन 'स्थानीय' उन सभी को स्थानीय टाइमज़ोन में अनुवादित करता है। हालांकि, मैं वास्तव में आईएसओ या आरएफसी को एक टाइमज़ोन में अनुवाद करना चाहता हूं। कोई जानता है कि उसे कैसे करना है? – cdunn2001

+1

@ cdunn2001 देखें http://stackoverflow.com/a/32990648/6309 – VonC

21
TZ=UTC git log --date=local 

आदेश गैर स्थानीय प्राप्त करने के लिए -टाइज़ोन वन-टाइमज़ोन आउटपुट।

+0

'टीजेड = यूटीसी गिट लॉग --डेट = आईएसओ-लोकल 'आईएसओ 8601 – Brice

+1

या' --डेट =' प्रारूप-स्थानीय का उपयोग करने के लिए:% वाई% एम% डीटी% एच% एम% एसजेड ' कॉम्पैक्ट आईएसओ 8601 प्रारूप (या कोई अन्य प्रारूप)। – robinst

31
git log --date=local 

चाल है।

git config --global log.date local 
+1

जब मैं चलाता हूं: 'गिट लॉग --डेट = स्थानीय --pretty = प्रारूप: "% ai,% an,% ae,% s" ', मुझे अभी भी टाइमज़ोन ऑफसेट मिलता है। ** iso ** तिथियों के साथ '--data = local' काम नहीं करता है? – user2436428

+0

@ user2436428 यदि आप [git लॉग दस्तावेज़ीकरण] (https://git-scm.com/docs/git-log) की जांच _format के लिए खोजते हैं: _ आपको दिखाई देगा कि आपको इसका उपयोग करने की आवश्यकता है: _ **% विज्ञापन **: लेखक दिनांक (प्रारूप सम्मान - दिनांक = विकल्प) _ _ **% एआई ** के बजाय _: लेखक की तारीख, आईएसओ 8601-जैसी प्रारूप_ – ptha

0

आप YYYY-MM-YYY HH में Git तारीख प्रदर्शित करने के लिए चाहते हैं: MM: SS प्रारूप:

date = $ (Git लॉग -n 1 --pretty = प्रारूप: "% विज्ञापन "--date = आईएसओ)
गूंज" दिनांक: $ {दिनांक :: 20} "

5

दुर्भाग्य से, git log --date=local के रूप में पिछले जवाब में बताया गया है का उपयोग कर उत्पादन प्रारूप बदलता है।

प्रारूप के रूप में पूछा (YYYY-MM-DD HH:mm) रखने के लिए मैं का इस्तेमाल किया था:

git log --date=iso-local 

लेकिन वह केवल Git 2.7 या इसके बाद के संस्करण पर काम करता है।

4

प्रारूप (YYYY-MM-DD HH:hh) पाने के लिए, आप का उपयोग कर सकते हैं:

git log --date=format:%Y-%m-%d\ %H:%M 

वर्क्स खूबसूरती से भी Git स्टैंडअप साथ: https://github.com/kamranahmedse/git-standup

+1

'--डेट = प्रारूप: ... 'मेरे लिए चाल है, धन्यवाद! – Anto

1

jveerman पद वास्तव में मददगार था:

यदि आप चाहते हैं YYYY-MM-DD HH में गिट दिनांक प्रदर्शित करने के लिए: एमएम: एसएस प्रारूप:

DATE=$(git log -n 1 --pretty=format:"%ad" --date=iso) 
echo "Date: ${DATE::20}" 

लॉग प्रारूप के लिए मैं करने के लिए इस

[log] 
date=format:%Y-%m-%d %H:%M:%S 

जोड़ने के लिए कर रहा था मेरी ~/.gitconfig

लेकिन एक कठिन परीक्षा था हो रही ही ठीक से स्वरूपित दिनांक/समय मेरे लिए प्रतिबद्ध संदेशों को स्वचालित रूप से जोड़। मैं उपयोगी कुछ भी नहीं मिला जब तक मैं .git/हुक को यह जोड़ा/तैयार-लिखें-msg फ़ाइल:

DATE=$(git log -n 1 --pretty=format:"%ad" --date=iso) 
echo "${DATE::20}" >> $1 

आप मुख्य रूप से डेस्कटॉप एप्लिकेशन का उपयोग कर रहे हैं, यह के साथ दिखाया गया परिवर्तन की सही समय है करने के लिए सुंदर है प्रतिबद्ध सूची!

क्या यह वैश्विक बनाने का कोई तरीका है, इसलिए मुझे प्रत्येक स्थानीय रेपो की तैयारी-प्रतिबद्ध-संदेश फ़ाइल को संपादित करने की आवश्यकता नहीं है?

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^