나는 형식이 다음과 같은 파일들이 있습니다 : 1311597859.567497 y_value_to_plot
. 첫 번째 토큰은 신기원 이후의 시간, 즉 유닉스 시간이다. 사용자는이 파일 이름과 "America/New_York"또는 "Europe/London"과 같은 시간대 사양을 사용하여 plot_file.pl을 호출하려고합니다. 이 파일에서 gnuplot을 set xdata time; set timefmt "%s"
으로 호출하면 작동하지만 UTC 시간으로 시간이 표시됩니다. 그러나 사용자는 현지 시간을보고 싶어합니다. 따라서 1311597859.567497
의 경우 시간대를 변경하지 않고 gnuplot은 12:44:19
을 표시하지만 사용자가 America/New_York
을 지정하면 gnuplot 창에서 08:44:19를보고 싶습니다. 나는 간단한 수정은 utc와 주어진 시간대 사이의 오프셋을 계산하고 토큰에서 빼고이 새 파일에 새 줄거리를 실행하는 것입니다. 따라서 Perl의 주어진 시간대에서 offset_seconds의 UTC를 얻을 수있는 방법을 찾고있었습니다.주어진 시간대의 초를 얻는 방법 - 펄의 UTC 시간
2
A
답변
4
유닉스 시간으로 나는 당신이 현지 시간의 신기원으로부터 초를 의미한다고 생각하고 당신은 UTC로 그 시대로부터 초로 변환하려고 시도하고있다.
Time::Zone 또는 DateTime::TimeZone (부분은 DateTime)과 같은 모듈을 사용하여 계산을 고려하십시오. 날짜 시간을 사용하여 단순히 로컬 시간에서 날짜 시간 개체를 변환 할 수
use DateTime;
use DateTime::TimeZone;
# cache local timezone because determining it can be slow
# if your timezone is user specified get it another way
our $App::LocalTZ = DateTime::TimeZone->new(name => 'local');
my $tz = DateTime::TimeZone->new(name => $App::LocalTZ);
my $dt = DateTime->now(); # again, time will be whatever you are passing in
# formulated as a DateTime
my $offset = $tz->offset_for_datetime($dt);
참고 : 날짜 시간 및 날짜 시간 : 시간대와
use Time::Zone;
my $offset_sec = tz_local_offset(); # or tz_offset($tz) if you have the TZ
# in a variable and it is not local
my $time = time(); # realistically it will be the time value you provide in localtime
my $utc_time = $time + $offset_sec;
: 시간 :: 지역으로 예를 들어
UTC 시간은set_time_zone('UTC')
을 통해 확인한 다음 gnuplot에도 포맷합니다.
로컬 시간대에서 몇 초 만에 얻을 수 있다면 손으로 직접 수행하려면 gmtime의 출력을 포맷 할 수 있습니다 (아마도 날짜/시간 문자열에서 mktime을 사용).
+0
불행히도 RHEL6의 perl 설치는 둘 다 작동하지 않습니다. 다른 종속성이있을 수 있기 때문에 CPAN을 추가하고 싶지 않았습니다. –
관련 문제
- 1. NSDateComponents에서 정확한 초를 얻는 방법?
- 2. 시간대의 날짜 시간
- 3. Java TimeZones : 콘솔 설정에 따라 UTC 시간 값을 얻는 방법?
- 4. 특정 시간대의 날짜를 얻는 방법? 모든
- 5. 사용자 입력 시간, 분, 초를 변환하는 방법
- 6. SQL 테이블의 UTC 시간
- 7. 자바에서 UTC 시간 생성
- 8. 주어진 시간대에 대해 UTC 시간이 DST인지 확인합니다.
- 9. Python에서 주어진 시간대의 DST 경계를 얻으십시오
- 10. 시간 필드에서 초를 제거 하시겠습니까?
- 11. SystemTimeToTzSpecificLocalTime - utc 오프셋 및 시간대를 얻는 방법
- 12. 주어진 시간 동안 setTimeout하지만 주어진 시간 동안
- 13. MVC - UTC 날짜 - 현지 시간
- 14. Java 표시 Windows UTC 시간
- 15. 날짜 시간 :: 된 getTimezone는 시간대의 이름을 반환하지만, 오프셋
- 16. 2 초를 기다리는 방법
- 17. 시간, 분 및 초를 가진 타이머를 생성해야합니다.
- 18. 파이썬에서 초를 사용하지 않고 로케일에 민감한 시간 형식을 표시하는 방법
- 19. 주어진 시간 후에 오디오를 재생하는 방법
- 20. 시간 경과 비율을 얻는 방법?
- 21. 주어진 Model.find (: all), 주어진 결과에서 모델/클래스의 이름을 얻는 방법?
- 22. 아래 주어진 시간
- 23. UTC 시간 문자열을 Unix 시간으로 변환
- 24. GMT/UTC 시간 (기본 시간대가 다른 경우)
- 25. Mongoid에 UTC 시간 값을 저장하는 방법은 무엇입니까?
- 26. JAVA UTC에서 긴 UTC 시간 소인
- 27. SQL Server Reporting Services 및 UTC 시간
- 28. UTC 시간을 전화로 변환 현지 시간
- 29. 주어진 타임 스탬프를 특정 시간대의 현재 시간으로 변환합니다.
- 30. iPhone CurrentTimeZoneOffset from UTC
유닉스 시간이 UTC일까요? – PtPazuzu
초 단위의 오프셋이 다릅니다. 일부 날짜 및 시간에는 America/New_York과 14,400s 차이가 있으며 다른 날짜는 18,000입니다. – ikegami
"나는 유닉스 시간있다"라는 것이 정확히 무엇을 의미합니까? 일반적으로 Unix 시간은 1970-01-01 00:00:00 GMT 이후의 초 수입니다. 현지 시간대의 영향을받지 않습니다. 예를 들어, 현재 유닉스 시간은 1311823238입니다. 당신이 그 숫자가 아닌 다른 것을 가지고 있다면, 당신이 가진 것을 정확하게 설명하십시오. 그것은 문자열인가? 그렇다면, 어떻게 생겼습니까? (@justkt에서 알 수 있듯이, "현지 시간으로 초"를 지키지는 않을 것 같습니다. 그런 가치를 창출 할 수 있을지는 모르겠군요.) –