मेरे पास एक साधारण इकाई वर्ग है जिसमें दिनांक संपत्ति है। यह संपत्ति एक MySQL डेटाटाइम कॉलम से मेल खाती है।डेटाबेस में निरंतर तिथि पुनर्प्राप्त तिथि के बराबर नहीं है
java.util.Date now = new java.util.Date();
Entity entity = new Entity();
entity.setStartDate(now);
entityService.save(entity); // save entity to database
entity = entityService.get(entity.getId()); // get entity back from database
Assert.assertEquals(entity.getStartDate(), now);
मैं उन दो तिथियों के बराबर होने की अपेक्षा करेंगे, लेकिन वे नहीं कर रहे हैं:
@Entity
public class Entity {
@Column(name = "start_date")
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date startDate;
}
यह वही एकीकरण परीक्षण मैं कैसी लगती है लिखा है! असल में, मेरे पास है:
now.getTime() = 1350160029831
entity.getStartDate().getTime() = 1350160029000
इसलिए दो तिथियों के बीच एक छोटा सा अंतर है। मैं वास्तव में सोच रहा हूं कि यह अंतर कहां से आ सकता है। यह हमेशा एक जैसा नहीं होता है और प्रत्येक बार जब मैं परीक्षण प्रक्रिया शुरू करता हूं तो भिन्न होता है। मेरे डेटाबेस में, संग्रहीत दिनांक 2012-10-13 22: 15: 38.0 है।
क्या मुझे वास्तव में कहीं मिलीसेकंड को साफ़ करने की आवश्यकता है?
तो मैं मिलीसेकेंड भाग से छुटकारा GED चाहिए इस तरह कुछ के साथ: कैलेंडर कैलेंडर = कैलेंडर.getInstance(); कैलेंडर.सेटटाइम (दिनांक); कैलेंडर.सेट (कैलेंडर। मिलिसेकोन्ड, 0); – Tunaki