Voglio sottrarre 1 ora da un DateTime
Ho provato a cercarlo su Google e ho scoperto che esiste un metodo chiamato meno che prende una copia della data e prende una durata specifica proprio qui: http://www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html#minus(long)meno 1 ora a DateTime usando Joda Time
Ma non so come usarlo e non riesco a trovare un esempio su Internet.
Ecco il mio codice:
String string1 = (String) table_4.getValueAt(0, 1);
String string2= (String) table_4.getValueAt(0, 2);
DateTimeFormatter dtf = DateTimeFormat.forPattern("hh:mm a").withLocale(Locale.ENGLISH);
DateTime dateTime1 = dtf.parseDateTime(string1.toString());
DateTime dateTime2 = dtf.parseDateTime(string2.toString());
final String oldf = ("hh:mm a");
final String newf= ("hh.mm 0");
final String newf2= ("hh.mm a");
final String elapsedformat = ("hh.mm");
SimpleDateFormat format2 = new SimpleDateFormat(oldf);
SimpleDateFormat format2E = new SimpleDateFormat(newf);
Period timePeriod = new Period(dateTime1, dateTime2);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendHours().appendSuffix(".")
.appendMinutes().appendSuffix("")
.toFormatter();
String elapsed = formatter.print(timePeriod);
table_4.setValueAt(elapsed,0,3);
DecimalFormat df = new DecimalFormat("00.00");
System.out.println(dateTime1);
table_4.setValueAt("", 0, 4);
table_4.setValueAt("", 0, 5);
dati di esempio:
dateTime1: 08:00 AM
dateTime2: 05:00 PM
il periodo sarà di 9 ore. ma voglio che siano 8 ore solo perché voglio sottrarre la pausa pranzo nel mio programma.
ho provato con questo codice stupido:
dateTime1.minus(-1)
Ho anche cercato analisi string1
raddoppiare così posso sottrarre da uno.
double strindtoD = Integer.parseInt(string1);
Ho anche provato a fare un altro periodo DateTime
e l'uso per ottenere la differenza dei due tempi
String stringOneHour = ("01:00 AM");
DateTime dateTime3 = dtf.parseDateTime(stringOneHour.toString());
Period timePeriod = new Period(dateTime3, dateTime1);
no non funziona .. – Maguzu
Uhwhat? Certo che lo fa Lo uso e funziona bene. Deve esserci qualcos'altro che non stai facendo bene ... Nota l'immutabilità! – fge
'DateTime sottratto = dateTime1.minus (Period.hours (1));' questo funziona ma come utilizzare come parametro nel periodo 'Periodo periodoFaggot = new Period (dateTime1, dateTime2); \t \t \t \t \t \t PeriodFormatter formattatore = new PeriodFormatterBuilder() \t \t .appendHours(). AppendSuffix (" ") \t \t .appendMinutes(). AppendSuffix ("") \t \t .toFormatter(); \t \t Stringa scaduta = formatter.print (periodoFaggot); ' – Maguzu