Das Problem ist: Ich habe Kriterien verwendet, um aus meiner Datenbank den Maximalwert von "StartDate" und "EndDate" zu nehmen. Jetzt muss ich den Unterschied zwischen diesen beiden Objekten finden, die sich im Zeitstempel der Datenbank befinden.Berechnen Sie den Unterschied zwischen zwei Timestamp-Objekten java
Weiß jemand, wie man vorgeht?
taskTimes.java
public Object taskTimes() {
Session session = sessionFactory.openSession();
session.beginTransaction();
Criteria criteria = session.createCriteria(Task.class).setProjection(Projections.max("endDate"));
Object avgDate = (Object) criteria.uniqueResult();
Criteria criteria1 = session.createCriteria(Task.class).setProjection(Projections.max("startDate"));
Object avgDate1 = (Object) criteria1.uniqueResult();
System.out.println(avgDate);
System.out.println(avgDate1);
session.close();
return avgDate;
}
Task.java
@Entity
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private int batch;
@Column
private java.sql.Timestamp startDate;
@Column
private java.sql.Timestamp endDate;
@ManyToOne
private Student student;
@ManyToOne
private Job job;
@OneToMany(mappedBy="task")
private List<Result> results;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
}
public List<Result> getResults() {
return results;
}
public void setResults(List<Result> results) {
this.results = results;
}
public Task(Long id, int batch, Timestamp startDate, Timestamp endDate, Student student, Job job,
List<Result> results) {
super();
this.id = id;
this.batch = batch;
this.startDate = startDate;
this.endDate = endDate;
this.student = student;
this.job = job;
this.results = results;
}
public java.sql.Timestamp getStartDate() {
return startDate;
}
public void setStartDate(java.sql.Timestamp startDate) {
this.startDate = startDate;
}
public java.sql.Timestamp getEndDate() {
return endDate;
}
public void setEndDate(java.sql.Timestamp endDate) {
this.endDate = endDate;
}
public Task() {
}
public int getBatch() {
return batch;
}
public void setBatch(int batch) {
this.batch = batch;
}
@Override
public String toString() {
return "Task [id=" + id;
}
'java.sql.Timestamp' erbt von' java.util.Date'. Die Berechnung der Differenz zwischen zwei "Date" -Objekten ist einfach. Ich schlage vor, Sie gehen zurück und lesen den Javadoc. –
Ich kann nicht vom Zeitstempel zum Datum –
umwandeln Sie können möglicherweise nicht von Timestamp in java.util.Date umwandeln, aber Sie sollten in der Lage sein, von Timestamp in java.sql.Date zu konvertieren. –