Infelizmente você não pode.
GNU coreutils - Sintaxe de data geral
In the current implementation, only English is supported for words and abbreviations like ‘AM’, ‘DST’, ‘EST’, ‘first’, ‘January’, ‘Sunday’, ‘tomorrow’, and ‘year’.
Como não consigo encontrar uma maneira de usar date
ou qualquer outra ferramenta como essa, veja como você pode fazer isso em Python.
import time
import locale
locale.setlocale(locale.LC_TIME, 'pl_PL')
logtime = time.strptime('30 Kwi 2012, 17:02', '%d %b %Y, %H:%M')
Você pode usar o strptime em qualquer idioma que o forneça, por exemplo, Python , Perl , C , < a href="http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html#method-c-strptime"> Ruby , etc.
Se você realmente tiver que usar apenas bash
, tente isto:
# create an associative array, e.g. month[kwi] = 4
# requires bash >= 4
declare -A month
for m in {1..12}; do
# any year should do since we only print the month
mmm=$(LC_TIME=pl_PL.UTF-8 date -d "2000-$m-1" "+%b")
month[$mmm]=$m
done
# test that the associative array works, should print 4
echo ${month[kwi]}
# given arguments <day> <month> <year>, <hour>:<minute>
# where month is a three-letter abbreviated Polish month name
# print it using the system's default date format
pl_date() {
local d=$1
local mmm=$2
local yyyy=$3
local hhmm=$4
local m=${month[$mmm]}
date -d "$yyyy-$m-$d $hhmm"
}
# use without quotes
pl_date 30 kwi 2012 17:02
Notas:
Mesmo em inglês, o ano é obrigatório e a vírgula não é permitida:
$ date -d "30 Apr, 17:02"
date: invalid date '30 Apr, 17:02'
$ date -d "30 Apr 2012 17:02"
Mon Apr 30 17:02:00 PDT 2012
Apenas LANGUAGE
suporta uma lista como pl_PL:pl
, as outras variáveis requerem um único nome, por ex. pl_PL
ou pl_PL.UTF-8
.