Forum » Programiranje » 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.
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.
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.
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
Slovenet ::
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 ::
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?
A smo vmes uvedli novo časovno cono?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
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.
č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!
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java] Prevajanje in šumniki v ubuntuOddelek: Programiranje | 2487 (2104) | mmaestro |
» | [Java]Branje podatkov iz datotekeOddelek: Programiranje | 2653 (1959) | jeryslo |
» | [Java] Evidenca delovnega časa - Java v navezi z AccessomOddelek: Programiranje | 3281 (2501) | c0dehunter |
» | [java] datumiOddelek: Programiranje | 1774 (1647) | l0g1t3ch |
» | [NALOGA][Java] Težave pri pisanju slikarjaOddelek: Programiranje | 2290 (1932) | l0g1t3ch |