» »

java date/time

java date/time

BRBR ::

Briše mi file ki sem ga naredil pred par sekundami, kajpak je plan da samo tiste ki so stari več od 1 mesec. ?
if(file1.lastModified() < (System.currentTimeMillis()- (1000*60*60*24*30)))
            {
                file1.delete();
               
            }

GupeM ::

S tistim množenjem v oklepaju prekoračiš max integer vrednost. Številke označi z 'L' na koncu, tako da jih bo java upoštevala kot long.

if(file1.lastModified() < (System.currentTimeMillis()- (1000L*60L*60L*24L*30L)))
{
    file1.delete();
}


Sicer pa to ne pomeni da bo brisalo samo fajle starejše od enega meseca, ampak starejše od 30 dni. Če ti je to dovolj, potem dobro, drugače pa moraš spremeniti način.

BRBR ::

Ja, je dovolj (30 dni).
Hvala.

Zgodovina sprememb…

  • spremenil: BRBR ()

Slovenet ::

Koda vrne dva različna časa, ki se razlikujeta tudi v primeru, da upoštevamo UTC+2.
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd HH:MM:ss");

Path path = Paths.get(file.getCanonicalPath());
            BasicFileAttributes attr;
            try {
                attr = Files.readAttributes(path, BasicFileAttributes.class);

                System.out.println("Creation date: " + attr.creationTime());
                System.out.println(simpleDateFormat.format(attr.creationTime().toMillis()));

            } catch (IOException e) {
                System.out.println("oops error! " + e.getMessage());
            }

Creation date: 2016-03-27T16:22:01.097964Z
2016-03-27 18:03:01

Spura ::

To je logicno, ker si predpisal tak format.

Slovenet ::

Spura je izjavil:

To je logicno, ker si predpisal tak format.

Kako pa naj naredim, da se bo izpisani datum nastanka datoteka ujemal z dejanskim datumom nastanka datoteke? Datum nastanka po tipu FileTime je 2016-03-27T16:22:01.097964Z, dejanski datum nastanka pa je 2016-03-27 18:22:01, kar bi moral vrniti tip SimpleDateformat.

Mavrik ::

Pravilno sparsaj timezone pa bo. Ne pa da preprosto to informacijo stran vržeš in je potem čas narobe.
The truth is rarely pure and never simple.

Spura ::

Slovenet je izjavil:

Datum nastanka po tipu FileTime je 2016-03-27T16:22:01.097964Z, dejanski datum nastanka pa je 2016-03-27 18:22:01, kar bi moral vrniti tip SimpleDateformat.

Pa saj se ujema. Datoteka je nastala ob casu 2016-03-27T16:22:01.097964Z, torej 27. marca 2016 ob 16:22 UTC. Ti si to fuknu v formatter in si mu reku da naj ti izpise leto-mesec-dan ura:mesec:sekunde v lokalnem casu tvojega racunalnika in si dobil izpis 2016-03-27 18:03:01, kar je tocno pravilno.

MrStein ::

Po kaki logiki je 16:22 UTC enako 18:03 CEST?
A smo vmes uvedli novo časovno cono?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Sergio ::

@MrStein: Preberi si dobro, kaj je napisal Spura. Formatter namesto minute izpisuje mesec (mm vs MM). Druga stvar je casovni pas. Java dela vse tocno tako kot mora. :)
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.

MrStein ::

Ah, the classic month-minute mixup...
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

Slovenet ::

Format datuma sem uredil s temle:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");       simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/Ljubljana"));


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Prevajanje in šumniki v ubuntu

Oddelek: Programiranje
202316 (1933) mmaestro
»

[Java]Branje podatkov iz datoteke

Oddelek: Programiranje
342570 (1876) jeryslo
»

[Java] Evidenca delovnega časa - Java v navezi z Accessom

Oddelek: Programiranje
393188 (2408) c0dehunter
»

[java] datumi

Oddelek: Programiranje
151703 (1576) l0g1t3ch
»

[NALOGA][Java] Težave pri pisanju slikarja

Oddelek: Programiranje
202148 (1790) l0g1t3ch

Več podobnih tem