2016-06-27 49 views
1

是否有可能(如果是這樣,如何?)獲得本地(地區)日期格式?理想情況下采用跨平臺的方式,否則至少要啓動Linux就足夠了。如何在linux中獲取本地(區域)日期格式?

什麼我談論:例如,當在終端中執行此行返回地方(區域)的方式格式化的日期(時間):

date +"%c" 

我想吃些什麼,而不是數量是在此顯示的形式,例如,如果我把我的區域設置爲立陶宛的人,我得到:

2016 m. birželio 27 d. 19:06:11 

所以我想獲得的,而不是上面這樣的:

YYYY MM DD 

如果我設置區域設置以美國的:

Mon 27 Jun 2016 07:09:24 PM EEST 

在這種情況下,取代上述我想獲得:

DD MM YYYY 

意義 - 不是實際數字,但如何本地(地區)日期被格式化。

後來我想將這些信息用於面向用戶

+1

你可能想閱讀更多關於['strftime'](http://en.cppreference.com/w/c/chrono/strftime)及其格式。像''%c「'格式一樣。 –

+0

@JoachimPileborg所有這些選項都會返回一個或另一個結果,但它們都不會傳遞格式。也許我在我的帖子/問題中並不清楚,因爲我想要的是字母,而不是數字。例如,可能有一個系統數據庫,它告訴strftime什麼時候使用格式,何時調用%c。我想要那些信息 - 使用什麼格式。 – Galvotas

+2

我想告訴你的是,你不需要*知道什麼是實際的格式。 ['strftime'](http://en.cppreference.com/w/c/chrono/strftime)也接受'「%c」'格式,給你你看起來像locale(region)的日期和時間輸出想要。否則,你總是可以獲得'date'程序的源代碼並查看它的功能。 –

回答

1

輸入/輸出操作而Joachims提示是正確的,在這裏爲您原來的問題的解決方案。 在bash只需輸入:

locale -k LC_TIME | grep ^d_fmt | cut -d= -f2 

如果您需要的時間格式而不是日期格式,使用t_fmt代替d_fmt,以及合併的日期/時間格式使用d_t_fmt

+0

謝謝@Matthias,我找到了基於Joachims提示的文件,但無法解碼二進制格式。非常感謝你! – Galvotas

+0

更簡單的bash命令提供相同的輸出: 'locale d_fmt' – samjewell

相關問題