ทำไม vaules วันที่แสดง 'Z' ต่อท้ายเมื่อเลเยอร์ถูกเผยแพร่ด้วย Geoserver และที่เก็บข้อมูล PostGIS


12

ฉันได้เผยแพร่เลเยอร์ต่างๆโดยใช้ Geoserver 2.2.x พร้อมที่เก็บข้อมูล PostGIS 2.0.1 (PostgreSQL 9.1.x) ฟิลด์ที่มีค่าวันที่เท่านั้นและไม่ใช่ค่าที่เกี่ยวข้องกับเวลา / การประทับเวลาจะถูกเก็บไว้เป็นวันที่ หลังจากเผยแพร่เลเยอร์ของฉันเป็น wfs / wms และเปิดตารางในวันที่เบราว์เซอร์ vlues แสดงขึ้นพร้อมกับ 'Z' ต่อท้าย

นี่เป็นผลิตภัณฑ์ของ api data store ของ geotools ที่ geoserver ใช้อยู่หรือไม่?

ฉันคิดว่า api data store ของ geotools กำลังโยนผ้าห่มเหนือวันที่อ่านข้อมูลในรูปแบบ datetime, timestamp เป็นต้นและ 'z' จะปรากฏขึ้นตามเวลาของ zulu ฉันสามารถปิดโดยสิ้นเชิงกับสมมติฐานทางภูมิศาสตร์ของฉัน แต่ใน PostgreSQL 'z' หมายถึงซูลูหรือ utc

หากค่าแหล่งข้อมูลถูกเก็บไว้เป็นวันที่และไม่มีส่วนประกอบเวลาทำไมจึงมี 'Z' ต่อท้ายในฟิลด์วันที่

ค่าวันที่ที่นี่หลายค่าแสดงด้วย 'Z' ต่อท้าย


1
ฉันคิดว่าวันที่จะถูกแปลงเป็น timestamps ภายใน ดูdocs.codehaus.org/display/GEOTOOLS/Date+Time+handlingสำหรับการอภิปรายบางอย่าง
Ian Turton

คำตอบ:


4

ดูเหมือนว่าคุณ / อยู่ในเส้นทางที่ถูกต้องเนื่องจากมีการใช้ 'Z' สำหรับตัวบ่งชี้เขตเวลานี่คือแหล่งที่ฉันพบว่าตอบคำถามของคุณได้ดีที่สุด

"Z" เป็นกรณีเฉพาะสำหรับ DateTimes ตัวอักษร "Z" เป็นส่วนหนึ่งของมาตรฐาน ISO 8601 datetime สำหรับเวลา UTC เมื่อ "Z" (ซูลู) ถูกจับเมื่อหมดเวลาก็แสดงว่าเวลานั้นเป็น UTC ดังนั้นตัวอักษร Z จริงๆเป็นส่วนหนึ่งของเวลา


แต่นี่ไม่ได้อธิบายว่าทำไมตัวบ่งชี้เขตเวลาจึงใช้สำหรับวันที่ที่ไม่มีองค์ประกอบเวลา
rooby

2

เริ่ม Goserver ของคุณด้วยตัวเลือก Java นี้:

-Dorg.geotools.localDateTimeHandling=true

มันจะบอกให้ Geotools ไม่แก้ไขวัตถุวันที่ ( http://docs.geotools.org/latest/javadocs/org/geotools/factory/GeoTools.html#LOCAL_DATE_TIME_HANDLING )

คุณต้องมี Geotools เวอร์ชัน 15 เป็นอย่างต่ำเพื่อให้ทำงานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.