यह हमारी अपेक्षा से अधिक आसान था।
सबसे पहले, application.conf . में , JDBC URL को मापदंडों के साथ कॉन्फ़िगर करें जैसा कि एक अन्य स्टैक ओवरफ्लो प्रश्न पर वर्णित है
:
# Set MySQL Connector/J to use UTC server connection and time conversions
# see https://stackoverflow.com/questions/10488529/gettimestamp-does-timezone-converstion-twice-in-mysql-jdbc-connector
db.default.url="jdbc:mysql://localhost/database?useGmtMillisForDatetimes=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&useTimezone=true&serverTimezone=UTC"
दूसरा, Build.scala . में , जावा सिस्टम गुण और डिफ़ॉल्ट सेट करें:
// Setting this property here forces the JVM to run in UTC time,
// both for test (`play test`) and development (`play start`) modes,
// but not for production (`play dist`).
System.setProperty("user.timezone", "GMT")
TimeZone.setDefault(TimeZone.getTimeZone("GMT"))
ये दोनों परिवर्तन एक साथ परीक्षण दोनों को संभाल लेंगे (play test ) और विकास (play start ) मोड।
उत्पादन . के लिए (play dist ), किसी को अभी भी लॉन्च से पहले संपत्ति को सेट करना होगा। उदाहरण के लिए, इनके द्वारा:
- जेनरेट किए गए
startका संपादन जोड़ने के लिए स्क्रिप्टexport _JAVA_OPTIONS=-Duser.timezone=GMT startका आह्वान करना स्क्रिप्ट के साथ-Duser.timezone=GMTSystem.setProperty("user.timezone", "GMT")को कॉल करने के बाद मौजूदा JVM में लॉन्च करना