String a fecha

Eva
29 de Julio del 2005
Estoy haciendo una serie de consultas en jsp pa una base ed datos. Necesito restar dos horas, en la base de datos se guaradan de tipos string en formato HH:MM necesitaría pasarla a tipos tiempo o algo pareciado para restarlas ya que tengo una hora de inicio y otra de fin. Me pasa lo mismo con unas fechas.
Muchas gracias.

arbago78
29 de Julio del 2005
espero te sirve este ejemplo..

// -----------------------------------------------------------------------------
// DateExample.java
// -----------------------------------------------------------------------------

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
* -----------------------------------------------------------------------------
* Used to provide an example that exercises most of the functionality of the
* java.util.Date class. A Date object represents a precise moment in time,
* down to the millisecond. Dates are represented as a long that counts the
* number of milliseconds since midnight, January 1, 1970, Greenwich Meantime.
* -----------------------------------------------------------------------------
*/

public class DateExample {

/**
* Helper utility used to print
* a String to STDOUT.
* @param s String that will be printed to STDOUT.
*/
private static void prt(String s) {
System.out.println(s);
}

private static void prt() {
System.out.println();
}

private static void doDateExample() {

// To create a Date object for the current
// date and time use the noargs Date() constructor like this:

prt("CURRENT DATE/TIME");
prt("=======================================================");
Date now = new Date();
prt(" new Date() : " + now);
prt();


// To create a Date object for a specific time, pass the number of
// milliseconds since midnight, January 1, 1970, Greenwich Meantime
// to the constructor, like this:
//
// Establish a date object set in milliseconds
// relative to 1/1/1970 GMT

prt("DATE OBJECT FOR SPECIFIC TIME");
prt("=======================================================");
Date specificDate1 = new Date(24L*60L*60L*1000L);
Date specificDate2 = new Date(0L);
prt(" new Date(24L*60L*60L*1000L) : " + specificDate1);
prt(" new Date(0L) : " + specificDate2);
prt();


// You can return the number of milliseconds in the Date
// as a long, using the getTime() method. For example,
// to time a block of code, you might do this
prt("USE getTime() TO RETURN MILLISECONDS");
prt("=======================================================");
Date startTime = new Date();
prt(" Start Time : " + startTime);
// ....
// Insert ant "timed code" here...
// ...
System.out.print(" ");
for (int i = 0; i < 10000000; i++) {
if ((i % 1000000) == 0) {
System.out.print(".");
}
// More "timed" code
}
prt();
Date endTime = new Date();
prt(" End Time : " + endTime);
long elapsed_time = endTime.getTime() - startTime.getTime();
prt("That took " + elapsed_time + " milliseconds");
prt();


// You can change a Date by passing the new date as a number of
// milliseconds since midnight, January 1, 1970, GMT, to the setTime()
// method, like this:
prt("USE gsetTime() TO CHANGE A DATE OBJECT");
prt("=======================================================");
Date changeDate = new Date();
prt(" new Date() : " + changeDate);
changeDate.setTime(24L*60L*60L*1000L);
prt(" setTime(24L*60L*60L*1000L) : " + changeDate);
prt();


// The before() method returns true if this Date is before the Date
// argument, false if it's not.
// For example
// if (midnight_jan2_1970.before(new Date())) {
// The after() method returns true if this Date is after the Date
// argument, false if it's not.
// For example
// if (midnight_jan2_1970.after(new Date())) {
// The Date class also has the usual hashCode(),
// equals(), and toString() methods.
prt("COMPARE DATES USING: before(), after(), equals()");
prt("=======================================================");

Date compareDateNow1 = new Date();
Date compareDateNow2 = (Date) compareDateNow1.clone();
Date compareDate1970 = new Date(24L*60L*60L*1000L);

prt(" Compare (Equals):");
prt(" - " + compareDateNow1);
prt(" - " + compareDateNow2);
if (compareDateNow1.equals(compareDateNow2)) {
prt(" - The two dates are equal.");
} else {
prt(" - The two dates are NOT equal.");
}
prt();

prt(" Compare (Equals):");
prt(" - " + compareDateNow1);
prt(" - " + compareDate1970);
if (compareDateNow1.equals(compareDate1970)) {
prt(" - The two dates are equal.");
} else {
prt(" - The two dates are NOT equal.");
}
prt();

prt(" Compare (Before):");
prt(" - " + compareDateNow1);
prt(" - " + compareDate1970);
if (compareDateNow1.before(compareDate1970)) {
prt(" - " + compareDateNow1 + " comes before " + compareDate1970 + ".");
} else {
prt(" - " + compareDateNow1 + " DOES NOT come before " + compareDate1970 + ".");
}
prt();

prt(" Compare (After):");
prt(" - " + compareDateNow1);
prt(" - " + compareDate1970);
if (compareDateNow1.after(compareDate1970)) {
prt(" - " + compareDateNow1 + " comes after " + compareDate1970 + ".");
} else {
prt(" - " + compareDateNow1 + " DOES NOT come after " + compareDate1970 + ".");
}
prt();



prt("RETRIEVE MILLISECONDS");
prt("=======================================================");

// Establish a date object set in milliseconds relative to 1/1/1970 GMT
Date y = new Date(1000L*60*60*24);

// Retrieve the number of milliseconds since 1/1/1970 GMT (31536000000)
long n = y.getTime();
prt(" Number of milliseconds since 1/1/1970 (GMT) : " + n);

// Computes a hashcode for the date object (1471228935)
int i = y.hashCode();
prt(" Hash code for object : " + i);

// Retrieve the string representation of the date (Thu Dec 31 16:00:00 PST 1970)
String s = y.toString();
prt(" String representation of date : " + s);
prt();

prt("PARSE STRING TO DATE");
prt("=================================================================");
Date newDate;
String inputDate = "1994-02-14";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.print(" " + inputDate + " parses as ");
try {
newDate = formatter.parse(inputDate);
prt(newDate + ".");
} catch (ParseException e) {
prt("Unparseable using " + formatter + ".");
}
prt();

}


public static void main(String[] args) {
prt();
doDateExample();
}

}