No se puede obtener los millis directamente de un Period
, ya que los campos como meses y años son variables en términos de milisegundos.
Para que esto funcione, debe proporcionar un instante de "línea base" desde el cual Period
puede calcular la duración real de milisegundos.
Por ejemplo, los métodos Period.toDurationFrom
y Period.toDurationTo
toman tal instante de referencia, y calculan un objeto Duration
, que luego puede obtener en milis.
El Javadoc para toDurationFrom
dice:
Obtiene la duración total de milisegundos de este período con relación a un arranque instantáneo. Este método agrega el período al instante especificado para calcular la duración.
Se debe suministrar un instante ya que la duración de un período varía. Por ejemplo, un período de 1 mes puede variar entre el equivalente a 28 y 31 días en milisegundos debido a diferentes meses de duración. De manera similar, un día puede variar al corte de horario de verano, generalmente entre 23 y 25 horas.
Por lo tanto, debe elegir un instante de referencia adecuado para su aplicación.
tiene: DateTime cero = new DateTime (0); long millis = period.toDurationFrom (cero) .getMillis(); – Droritos
@DrorWeiss: Eso funcionará solo durante períodos relativamente pequeños. Si comienzas a usar períodos de más de un mes, eso puede darte un resultado distorsionado. – skaffman
lo he probado ... hasta ahora se ve bien. sin embargo, voy a vigilar. Gracias ! ;) – Droritos