다양한 언어의 타임스탬프 문구를 이해하려면 "날짜"를 얻으세요.

다양한 언어의 타임스탬프 문구를 이해하려면 "날짜"를 얻으세요.

date -d내 웹 스크래핑 스크립트는 오랫동안 "1999년 3월 11일"과 같은 사람 형식의 시간 및 날짜 스탬프를 읽고 -s 매개변수를 통해 필요한 다른 형식으로 변환하는 데 즐겨 사용되었습니다 .

다른 로케일로 인쇄된 날짜를 어떻게 이해할 수 있습니까 27 Kwi, 13:54?세련? 필요한 경우 연도(2012)를 인위적으로 추가/추가할 수 있습니다.

나는 내 것을 확인 env하고 다음을 시도했지만 운이 없었습니다.

LOCALE=PL date -d "30 Kwi, 17:02"
LANGUAGE=pl_PL:pl date -d "30 Kwi, 17:02"
LC_CTYPE=pl_PL:pl date -d "30 Kwi, 17:02"
LANG=pl_PL:pl date -d "30 Kwi, 17:02"
LC_COLLATE=pl_PL:pl date -d "30 Kwi, 17:02"
LC_MESSAGES=pl_PL:pl date -d "30 Kwi, 17:02"
date: invalid date `30 Kwi, 17:02'

내가 설치한 시스템에서는

LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_COLLATE=en_US.UTF-8

답변1

불행하게도 당신은 할 수 없습니다.

GNU coreutils - 범용 날짜 구문

현재 구현에서는 "AM", "DST", "EST", "first", "January", "Sunday", "tomorrow", "year" 등 영어 단어와 약어만 지원됩니다.


datePython이나 다른 유사한 도구를 사용하여 이 작업을 수행하는 방법을 찾을 수 없었으므로 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')

strptime을 제공하는 모든 언어로 사용할 수 있습니다.파이썬,진주,,루비, 등.


꼭 사용해야 한다면 bash다음을 시도해 보세요.

# 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

노트:

영어의 경우에도 연도는 필수이며 쉼표는 허용되지 않습니다.

$ 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

같은 목록 만 LANGUAGE지원되며 다른 변수에는 또는 pl_PL:pl같은 단일 이름이 필요합니다 .pl_PLpl_PL.UTF-8

관련 정보