यह हमारी अपेक्षा से अधिक आसान था।
सबसे पहले, 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=GMT
System.setProperty("user.timezone", "GMT")
को कॉल करने के बाद मौजूदा JVM में लॉन्च करना