Data.table: يبلغ IDateTime عن تاريخ خاطئ إذا كان الوقت أكبر من 15:59 (tz = "America / Los_Angeles")

تم إنشاؤها على ١٥ يناير ٢٠١٦  ·  5تعليقات  ·  مصدر: Rdatatable/data.table

تنشئ IDateTime () تاريخًا خاطئًا إذا كان جزء الوقت أكبر من 15:59 (tz = "America / Los_Angeles")
تحويل جميع السجلات التي لها وقت في / بعد 15:59 من منطقتي الزمنية.

تفاصيل المشكلة في:
http://stackoverflow.com/questions/34786887/why-does-idatetime-convert-to-the-wrong-date

البيانات في ملف FiveMinute.csv:
الوقت ، مرتفع ، منخفض ، فتح ، إغلاق ، المجلد
2016/01/13 11: 00،4.8100،4.7875،4.8050،4.7900،543
2016/01/13 11: 05،4.7950،4.7825،4.7900،4.7925،781
2016/01/13 11: 10،4.7925،4.7750،4.7925،4.7775،2787
2016/01/13 11: 15،4.7850،4.7775،4.7800،4.7800،659
2016/01/13 17: 00،4.7800،4.7700،4.7800،4.7700،371
2016/01/13 17: 05،4.7750،4.7700،4.7700،4.7700،158
2016/01/13 17: 10،4.7675،4.7550،4.7675،4.7550،288

نص R:
مكتبة (جدول البيانات)
csv1 = "FiveMinute.csv"
dt = fread (csv1)
dput (dt)

as.POSIXct لا يغير التاريخ

as.POSIXct (dt $ Time)
مثل POSIXct (dt $ Time، "٪ Y /٪ m /٪ d٪ H:٪ M"، tz = "")

هذه الاستدعاءات تنتج مخرجات غير صحيحة

IDateTime (مثل POSIXct (dt $ Time))
IDateTime (مثل POSIXct (dt $ Time، tz = ""))
IDateTime (مثل POSIXct (dt $ Time، tz = "America / Los_Angeles"))
IDateTime (مثل POSIXct (dt $ Time، "٪ Y /٪ m /٪ d٪ H:٪ M"، tz = ""))
IDateTime (مثل POSIXct (dt $ Time، "٪ Y /٪ m /٪ d٪ H:٪ M"، tz = "America / Los_Angeles"))
dput (IDateTime (مثل POSIXct (dt $ Time، "٪ Y /٪ m /٪ d٪ H:٪ M"، tz = "America / Los_Angeles")))
dput (IDateTime (مثل POSIXct (dt [، Time]، "٪ Y /٪ m /٪ d٪ H:٪ M"، tz = "America / Los_Angeles")))

النظام: Win10x64 R 3.2.2 data.table 1.9.6

bug idatitime

ال 5 كومينتر

المنشور الثاني في الإصدار رقم 977 يقدم تخصصًا as.IDate.POSIXct أستخدمه. سيستخدم المنطقة الزمنية المحددة بواسطة POSIXct. سيتم أيضًا إجراء تحويل إذا قمت بتمرير وسيطة tz ، لكن لاحظ أن IDateTime لا يمرر وسيطات إضافية إلى as.IDate . عمليًا ، قمت أيضًا بإعادة تعريف IDateTime لتمرير وسيطات ... إلى as.IDate و as.ITime .

ليس من الواضح بالنسبة لي ما هي المعايير والأهداف حول IDateTime ، لذلك لم أحاول إنشاء علاقات عامة لهذا ، لكنني أعتقد أنها ستعالج مشكلتك.

شكرًا لك ، e-mu-pi. لقد حددت سبب مشكلة IDateTime التي أواجهها.

MichaelChirico هل تعتقد أنه يمكنك إلقاء نظرة على هذا؟ (نظرًا لأنك أصلحت بعض المشكلات / أجريت تحسينات مع IDate / ITime ..)

arunsrinivasan بالتأكيد ،

المنشور الأصلي غير واضح بعض الشيء.

مثال بسيط:

as.POSIXct("2016/01/13 17:00", tz = "America/Los_Angeles")
# [1] "2016-01-13 17:00:00 PST"
IDateTime(as.POSIXct("2016/01/13 17:00", tz = "America/Los_Angeles"))
#         idate    itime
# 1: 2016-01-14 17:00:00
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات