FileTime umwandeln in Datum und Zeit
Übersicht

![]() |
Mathias-KwiatkowskiBetreff: FileTime umwandeln in Datum und Zeit |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja also es geht darum das ich den befehl FileTime nutzen möchte dieser befehl liest den zeitwert der datei aus, und es gibt mir so ein ergebnis: 1428628046 ... wie bekomme ich diese angabe nun schön in
(Tag,Mon,Jahr,STD,Min, eventuell SEK) hat jemand eine saubere antwort für mich? |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also die Filetime ist eine Unix-Time. Ob BMax jetzt Funktionen (es gibt Standard-C-Funktionen dafür) dafür hat, weiß ich ehrlich gesagt gar nicht mehr. Auf die Schnelle konnte ich da nun nichts finden, aber CurrentTime() und CurrentDate() verwenden ebenfalls intern die Unixtime, da könntest du auch im Quelltext nachschauen. Ansonsten müsstest du mal danachgoogeln. Andernfalls findest du über das Stichwort auch so irgendwo, wie man das händisch umrechnen könnte. | ||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Notfall kannst du auch googlen nach einer Implementierung. Ich hab nach "convert unix timestamp to date c++" gegoogelt und folgendes auf stackoverflow gefunden:
http://stackoverflow.com/quest...dable-date Das sind 4 Zeilen, die man sich schnell in das Modul als Funktion hineinkompilieren kann und fertig. Wenn du dich allerdings für die Implementierung interessierst, dann müsstest du eben dich mit Unix-Zeit beschäftigen. Was du da bekommst ist nämlich (laut meinem Vorposter - ich habe das nicht überprüft) die Anzahl der vergangenen Sekunden seit 1. Januar 1970 00:00 Uhr UTC |
||
sinjin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oder man benutzt einfach Kernel32 (ich bin auch gerade dabei die WIN API zu nutzen, aber so ungefähr gehts in BMAX):
Code: [AUSKLAPPEN] import "-lkernel32"
extern "win32" function GetFileTime(hnd%,fsize:byte ptr) ' oder, ich denke das geht: function GetFileTime(hnd%,fsize:long) function FileTimeToSystemTime(in:tfsz,out:apitime) endextern type tfsz field low% field hi% endtype type tapitime field wYear:short field wMonth:short field wDayOfWeek:short field wDay:short field wHour:short field wMinute:short field wSecond:short field wMilliseconds:short endtype function gettime(fsz:tfsz,out:tapitime) FileTimeToSystemTime fsz,out endfunction Das will ich auch noch machen, aber so ungefähr muss es aussehen. Man muss die Datei erst öffnen um das Handle zu bekommen. |
||
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
ohman das hörrt sich echt nach stress an ![]() |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bedenke, dass du wegen so einer Kleinigkeit die (theoretische) Plattformunabhängigkeit von BlitzMax verlierst, wenn du WinAPI dafür verwendest. | ||
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() da max nur nahezu os unabhängig ist würde das vollkommen reichen... |
||
Skype: Anarchie1984
http://projektworks.de/maxbase/ Icq - Erneuert am 21.08.2017 Yahoo - Erneuert am 21.08.2017 |
sinjin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab's fast, nur ein Problem habe ich mit FileTimeToSystemTime:
Code: [AUSKLAPPEN] import "-lkernel32"
extern "win32" const INVALID_HANDLE_VALUE%=-1 const GENERIC_READ%=$80000000 const FILE_ATTRIBUTE_NORMAL%=$80 const OPEN_EXISTING%=3 const FILE_SHARE_READ%=$1 const FILE_SHARE_WRITE%=$2 const FILE_SHARE_READWRITE%=FILE_SHARE_READ|FILE_SHARE_WRITE function CreateFileW%(lpFileName$z,dwDesiredAccess%,dwShareMode%.. ,lpSecurityAttributes%,dwCreationDisposition%,dwFlagsAndAttributes%,hTemplateFile%)="CreateFileA@28" function CloseHandle%(hObject%) function GetFileTimeW%(hfile%,lpCreationTime:long var,lpLastAccessTime:long var,lpLastWriteTime:long var)="GetFileTime@16" function FileTimeToSystemTime%(lpFileTime:long,lpSystemTime:tapitime var)="FileTimeToSystemTime@8" ' function FileTimeToLocalFileTime%(lpFileTime:long,lpLocalFileTime:long var)="FileTimeToLocalFileTime@8" function SystemTimeToTzSpecificLocalTime%(lpTimeZone%,lpUniversalTime:tapitime,lpLocalTime:tapitime var) endextern type tapitime field Year:short field Month:short field DayOfWeek:short field Day:short field Hour:short field Minute:short field Second:short field Milliseconds:short endtype function getfiletime%(url$,at:tapitime) local hndl%=createfilew(url,GENERIC_READ,FILE_SHARE_READWRITE,null,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,null) if (hndl=INVALID_HANDLE_VALUE) then return -1 local lpCreationTime:long,lpLastAccessTime:long,lpLastWriteTime:long if GetFileTimeW(hndl,lpCreationTime,lpLastAccessTime,lpLastWriteTime) then FileTimeToSystemTime lpCreationTime,at '<- was läuft hier falsch? SystemTimeToTzSpecificLocalTime null,at,at endif CloseHandle hndl endfunction local p:tapitime=new tapitime getfiletime "test.file",p |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group