유닉스 시간 (초)에서 ISO-8601의 datetime까지

루도빅 쿠티

TL; DR. ISO-8601 형식으로 초 단위의 유닉스 시간에서 datetime으로 이동하는 방법은 무엇입니까? 이것은 언어 질문보다 도서관 질문에 더 가깝습니다.

핑 타임 스탬프 (유닉스 시간 + 마이크로 초)를 날짜 시간으로 해석하여 시각화하거나 날짜 및 시간 작업을 수행 할 수 있기를 바랍니다. 긴 핑 추적 (수천 줄)이 있는데 각 줄은 핑의 성공 또는 실패를 나타냅니다.

나는 이미 정규식을 사용하여 유닉스 시간 (마이크로 초없이)을 얻기 위해 장난감 예제를 만들 수 있었지만 APL에서 datetimes를 사용하는 방법을 찾지 못했습니다. Github에서 APLteam과 그들의 하위 프로젝트가 호출 한 APLtree 프로젝트를 찾았 DateAndTime지만 설치하지 못했습니다. 진행 방법을 모르겠습니다.

ping 타임 스탬프 앞에 ISO-8601 형식으로 명시 적으로 작성된 datetime이 이미 있다는 것을 알고 있지만 APL의 기본 사항을 배우기 위해 datetime을 조작하고 싶습니다. 또한 유닉스 시간에 대한 작업을 수행 한 다음 ISO-8601 형식의 날짜 시간으로 변환 할 수 있습니다.

추적은 Linux에서 다음 명령을 사용하여 생성됩니다.

ping -n -i 30 -O -D my.domain.name | while read pong; do echo "[WAN] $(date --iso-8601=seconds): $pong"; done

출력 추적은 다음과 같습니다.

[WAN] 2020-01-31T18:02:35+0100: [1580490155.323878] 64 bytes from 8.8.8.8: icmp_seq=1037 ttl=234 time=720 ms
[WAN] 2020-01-31T18:03:34+0100: [1580490214.630890] no answer yet for icmp_seq=1038

APL 프로그램 :

      v←('\[(\d+)\.'⎕S'\1')⊃⎕NGET'/Users/ludo/Desktop/so/ping.txt' 1
      v
 1580490155  1580490214
      ⍴v
2
      DISPLAY v
┌→──────────────────────────┐
│ ┌→─────────┐ ┌→─────────┐ │
│ │1580490155│ │1580490214│ │
│ └──────────┘ └──────────┘ │
└∊──────────────────────────┘

또 다른 질문이 있습니다. []의 사용 순위가 다른 이유는 무엇입니까? 한 경우에는 벡터가 있고 다른 경우에는 간단한 문자열 (스칼라)이 있습니까? ⍴⍴v[1]0입니까? 아래 예를 참조하십시오.

      v←⎕NGET'/Users/ludo/Desktop/so/ping.txt' 1
      v
  [WAN] 2020-01-31T18:02:35+0100: [1580490155.323878] 64 bytes from 8.8.8.8: ic
      mp_seq=1037 ttl=234 time=720 ms  [WAN] 2020-01-31T18:03:34+0100: [1580490
      214.630890] no answer yet for icmp_seq=1038   UTF-8-NOBOM  13 10
      DISPLAY v
┌→───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ ┌→─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ ┌→──────────┐ ┌→────┐ │
│ │ ┌→───────────────────────────────────────────────────────────────────────────────────────────────────────────┐ ┌→──────────────────────────────────────────────────────────────────────────────────┐ │ │UTF-8-NOBOM│ │13 10│ │
│ │ │[WAN] 2020-01-31T18:02:35+0100: [1580490155.323878] 64 bytes from 8.8.8.8: icmp_seq=1037 ttl=234 time=720 ms│ │[WAN] 2020-01-31T18:03:34+0100: [1580490214.630890] no answer yet for icmp_seq=1038│ │ └───────────┘ └~────┘ │
│ │ └────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ └───────────────────────────────────────────────────────────────────────────────────┘ │                       │
│ └∊─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘                       │
└∊───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
      ⍴v
3
      v[1]
  [WAN] 2020-01-31T18:02:35+0100: [1580490155.323878] 64 bytes from 8.8.8.8: ic
      mp_seq=1037 ttl=234 time=720 ms  [WAN] 2020-01-31T18:03:34+0100: [1580490
      214.630890] no answer yet for icmp_seq=1038
      ⊃v
 [WAN] 2020-01-31T18:02:35+0100: [1580490155.323878] 64 bytes from 8.8.8.8: icm
      p_seq=1037 ttl=234 time=720 ms  [WAN] 2020-01-31T18:03:34+0100: [15804902
      14.630890] no answer yet for icmp_seq=1038
      ⍴v[1]

      ⍴⊃v
2
      ⍴⍴v[1]
0
      ⍴⍴⊃v
1
아담

ISO-8601 형식으로 초 단위의 유닉스 시간에서 datetime으로 이동하는 방법은 무엇입니까?

      'date' 'days'⎕CY'dfns'
      unix0←days 1970 1 1
      sPerDay←24×60×60
      UnixToTs←date unix0+÷∘sPerDay
      TsToIso←{'--T::'@(2+3×⍳5)∊⍕¨(⊃,100+1∘↓)6↑⍵}   ⍝ modified from aplcart.info?q=iso8601
      UnixToIso←TsToIso UnixToTs
      UnixToIso 1580490155
2020-01-31T17:02:35

온라인으로 시도하십시오!

편의를 위해 그 반대입니다.

      IsoToTs←⍎¨∊∘⎕D⊆⊢
      TsToUnix←sPerDay×unix0-⍨days
      IsoToUnix←TsToUnix IsoToTs
      IsoToUnix '2020-01-31T17:02:35'
1580490155

온라인으로 시도하십시오!


정규식을 사용하여 유닉스 시간 얻기

파일이 일관된 경우 APL을 사용하여 데이터를 추출하는 것이 좋습니다. 속도 차이가 클 수 있습니다. 예를 들어 모든 행이 다음과 같은 정확한 형식을 사용하는 경우 :

      v←(⍎¯10↑43∘↑)¨⊃⎕NGET'/Users/ludo/Desktop/so/ping.txt' 1
      DISPLAY v
┌→────────────────────┐
│1580490155 1580490214│
└~────────────────────┘

[]와 ⊃ 사용의 순위 차이는 무엇입니까?

[]배열에서 추출한 요소를 공개 ( "개방")하지 않으므로 중첩 된 배열의 요소는 닫힌 상태로 유지됩니다.

한 경우에는 벡터가 있고 다른 경우에는 간단한 문자열 (스칼라)이 있습니까?

예, 한 경우에는 벡터로, 다른 경우에는 포함 벡터 로 표현하는 것이 좋습니다 .

⍴⍴v [1]이 0 인 이유는 무엇입니까?

스칼라의 순위 (순위가 더 높은 배열이 포함되어 있더라도)가 0이기 때문입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ISO 8601 형식으로 파일에 저장된 유닉스 시간을 변환하고 바꿀 수 있습니까?

분류에서Dev

ISO 8601의 대상 시간대에있는 날짜입니까?

분류에서Dev

ISO-8601 날짜 시간의 문자열을 Java에서 초 수

분류에서Dev

우분투의 UTC 시간에서 유닉스 시간 계산

분류에서Dev

PHP-초에서 밀리 초까지의 유닉스 타임 스탬프

분류에서Dev

현재 시간에서 1 시간 전까지 서버에서 레코드를 검색하려고 시도하는 경우 ISO 8601 형식의 타임 스탬프

분류에서Dev

시간대가있는 ISO8601 날짜를 Julia의 DateTime으로 변환

분류에서Dev

ISO 8601 시간이 1 시간 범위 내에 있는지 어떻게 알 수 있습니까?

분류에서Dev

UTC iso8601 날짜를 현지 시간대의 특정 형식으로

분류에서Dev

해야 내가 스토어 유닉스 시간에서 별도의 테이블

분류에서Dev

해야 내가 스토어 유닉스 시간에서 별도의 테이블

분류에서Dev

어떻게 인간 [안드로이드 스튜디오]에 의해 문자열 읽기에 ISO 8601 시간을 변환하는?

분류에서Dev

pandas.to_datetime () 현지 시간대에서 UTC 유닉스 타임 스탬프로 변환하는 방법은 무엇입니까?

분류에서Dev

Python에서 ISO8601 형식으로 임의의 날짜 시간 목록 생성

분류에서Dev

busybox의 "날짜"에서 ISO8601 초 형식을 얻는 방법은 무엇입니까?

분류에서Dev

POSTGRESQL 스크립트 사이의 시간이있는 날짜에서 datetime까지

분류에서Dev

PYTHON에서 유닉스 시간을 현지 날짜 및 시간으로 변환 할 수 없습니다.

분류에서Dev

유닉스 타임 스탬프 (php)에서 어제의 시작 시간을 가져옵니다.

분류에서Dev

초기 유닉스 시스템에서는 어떤 셸이 사용 되었습니까?

분류에서Dev

초기 유닉스 시스템에서는 어떤 셸이 사용 되었습니까?

분류에서Dev

PHP의 시간대를 사용하여 ISO 8601 형식의 타임 스탬프를 얻는 방법

분류에서Dev

moment.js를 사용하여 유닉스 타임 스탬프에서 남은 시간, 분, 초를 얻는 방법은 무엇입니까?

분류에서Dev

Oracle SQL에서 기간 동안 초 값을 ISO 8601 형식으로 변환

분류에서Dev

시간 간격을 PHP에서 ISO 8601 시작 / 종료로 간결하게 포맷하는 방법은 무엇입니까?

분류에서Dev

유닉스 계열 시스템에 여러 개의 쉘이있는 이유는 무엇입니까?

분류에서Dev

유닉스에서 "../"의 의미는 무엇입니까?

분류에서Dev

Python 3의 Pytz 모듈에서 EST, CST 및 DST 시간대를 유닉스 타임 스탬프로 변환

분류에서Dev

유닉스 쉘 스크립트-두 개의 .txt 파일에서 결과 추출 (시간 작업)

분류에서Dev

현재 서버 시간을 ISO 8601로 변환

Related 관련 기사

  1. 1

    ISO 8601 형식으로 파일에 저장된 유닉스 시간을 변환하고 바꿀 수 있습니까?

  2. 2

    ISO 8601의 대상 시간대에있는 날짜입니까?

  3. 3

    ISO-8601 날짜 시간의 문자열을 Java에서 초 수

  4. 4

    우분투의 UTC 시간에서 유닉스 시간 계산

  5. 5

    PHP-초에서 밀리 초까지의 유닉스 타임 스탬프

  6. 6

    현재 시간에서 1 시간 전까지 서버에서 레코드를 검색하려고 시도하는 경우 ISO 8601 형식의 타임 스탬프

  7. 7

    시간대가있는 ISO8601 날짜를 Julia의 DateTime으로 변환

  8. 8

    ISO 8601 시간이 1 시간 범위 내에 있는지 어떻게 알 수 있습니까?

  9. 9

    UTC iso8601 날짜를 현지 시간대의 특정 형식으로

  10. 10

    해야 내가 스토어 유닉스 시간에서 별도의 테이블

  11. 11

    해야 내가 스토어 유닉스 시간에서 별도의 테이블

  12. 12

    어떻게 인간 [안드로이드 스튜디오]에 의해 문자열 읽기에 ISO 8601 시간을 변환하는?

  13. 13

    pandas.to_datetime () 현지 시간대에서 UTC 유닉스 타임 스탬프로 변환하는 방법은 무엇입니까?

  14. 14

    Python에서 ISO8601 형식으로 임의의 날짜 시간 목록 생성

  15. 15

    busybox의 "날짜"에서 ISO8601 초 형식을 얻는 방법은 무엇입니까?

  16. 16

    POSTGRESQL 스크립트 사이의 시간이있는 날짜에서 datetime까지

  17. 17

    PYTHON에서 유닉스 시간을 현지 날짜 및 시간으로 변환 할 수 없습니다.

  18. 18

    유닉스 타임 스탬프 (php)에서 어제의 시작 시간을 가져옵니다.

  19. 19

    초기 유닉스 시스템에서는 어떤 셸이 사용 되었습니까?

  20. 20

    초기 유닉스 시스템에서는 어떤 셸이 사용 되었습니까?

  21. 21

    PHP의 시간대를 사용하여 ISO 8601 형식의 타임 스탬프를 얻는 방법

  22. 22

    moment.js를 사용하여 유닉스 타임 스탬프에서 남은 시간, 분, 초를 얻는 방법은 무엇입니까?

  23. 23

    Oracle SQL에서 기간 동안 초 값을 ISO 8601 형식으로 변환

  24. 24

    시간 간격을 PHP에서 ISO 8601 시작 / 종료로 간결하게 포맷하는 방법은 무엇입니까?

  25. 25

    유닉스 계열 시스템에 여러 개의 쉘이있는 이유는 무엇입니까?

  26. 26

    유닉스에서 "../"의 의미는 무엇입니까?

  27. 27

    Python 3의 Pytz 모듈에서 EST, CST 및 DST 시간대를 유닉스 타임 스탬프로 변환

  28. 28

    유닉스 쉘 스크립트-두 개의 .txt 파일에서 결과 추출 (시간 작업)

  29. 29

    현재 서버 시간을 ISO 8601로 변환

뜨겁다태그

보관