Convertir de Integer8 a Fecha

08/06/2007 - 22:28 por Edgard Gerardo | Informe spam
Hola, tengo un lista de usuarios que consegui a través del comenda csvde,
pero la fecha del último inisio de sesión la tengo en formato interger y
necesito verla en formato de fecha normal, es decir:

Tengo la fecha asi 127637727330312000 y la necesito en este formato dd/mm/aaaa

Esta lista la tengo en excel, he probado la formula
ÚTE(1970;1;1)+cell(24*60*60) y no funciona.

Necesito la formula para excel.

Mil gracias...

Preguntas similare

Leer las respuestas

#6 AnSanVal
10/06/2007 - 15:06 | Informe spam
(Creo que) el problema lo tienes en los datos que capturas y no en la
interpretación de los mismos.
Por ejemplo: el número 402.133 corresponde a 31 de diciembre del año 3000.

Por lo tanto a cualquier fecha anterior, le corresponde un número menor,
asi: el número 14.611 representa a 01-enero-1940, y el 122 representa a
01-mayo-1900.

Esto viene a cuento de que el número 127.637.727.330.312.000 representaría
una fecha tan extremadamente lejana (hacia el futuro), que parece carecer de
sentido.

No obstante (como indica Hector), un número en excel se representa como
máximo con quince caracteres, por lo tanto "127637727330312000" es un texto.

Saludos desde Tenerife.
*************************************
Respuesta Responder a este mensaje
#7 Héctor Miguel
11/06/2007 - 03:13 | Informe spam
hola, chicos !

AnSanVal escribio en el mensaje ...
(Creo que) el problema lo tienes en los datos que capturas y no en la interpretacion de los mismos.
Por ejemplo: el numero 402.133 corresponde a 31 de diciembre del a#o 3000 [...]
Esto viene a cuento de que el numero 127.637.727.330.312.000 representaria una fecha
tan extremadamente lejana (hacia el futuro), que parece carecer de sentido [...]



en esta observacion se sigue considerando la base de fechas de las hojas de calculo... 1900 [pero]...

a) Edgar comento que *su sistema* [scvde] tiene como *base 0* al a#o de 1600 [300 a#os antes]
[en dias] esa diferencia equivale a aumentar a cualquier fecha ~109,500 dias [300 x 365 -*bisiestos aparte*-]

b) Edgar expone tambien que el numero es dividido por (24*60*60)
lo cual indica que el numero *oficial* [127,637,727,330,312,000] -> representa segundos
por lo que el numero [fecha ?] *real* que se pretende convertir es: -> 1,477,288,510,768
[aun asi]... sigue siendo una fecha *distante* [en el futuro y aparentemente] *carente de sentido* -?-

en tanto Edgar comenta detalles nuevos...
saludos,
hector.
Respuesta Responder a este mensaje
#8 Edgard Gerardo
11/06/2007 - 05:25 | Informe spam
Hola, gracias por el interes que han prestado a este caso, les comento para
aclarar el caso:

- CSVDE, es un comando de Directorio Activo:
http://technet2.microsoft.com/windo...x?mfr=true

- Directorio Activo, tiene una capa o pastición denominada "Esquema", es
donde se guardan los datos de los objetos como Cuentas de Usuarios, Cuentas
de Coputador, Contactos, Impresoras y otros, dentro de los datos que almacena
las Cuentas de Usuarios esta "LastLogon" o en Windows Server 2003
"LastLogonTimeStamp", este valor es almacenada en formato "Integer8" de
64bits, ejemplo: 127637727330312000.

- La formula =Date(1970;1;1)+cell(24*60*60), la encontré en Internet, se
supone que funciona pero en mi caso me regresa solo simbolos de numeral,
########, al cambiar a formato fecha en las propiedades de celda.

- Richard L. Mueller, en su blog comenta la conversión de fecha a integer8:
http://www.rlmueller.net/Integer8Attributes.htm

- Lo que necesito, los datos ya los capturé con e comando "scvde" creando un
archivo de texto separado por comas, luego lo importe a una hoja de Excel,
para poder filtrar los usuarios de manera fácil y sencilla necesito cambiar
de integer8 a unformato de fecha, ejemplo:

Obtengo este número de fecha del último inicio de sesón de un usuario en el
Controlador de Dominio: 127637727330312000 y necesito porder leerlo en un
formato entendible: dd/mm/aaaa.

Espero haber ayudado con esta acleración, mil gracias...

Edgard Hersen

"Héctor Miguel" wrote:

hola, chicos !

> AnSanVal escribio en el mensaje ...
> (Creo que) el problema lo tienes en los datos que capturas y no en la interpretacion de los mismos.
> Por ejemplo: el numero 402.133 corresponde a 31 de diciembre del a#o 3000 [...]
> Esto viene a cuento de que el numero 127.637.727.330.312.000 representaria una fecha
> tan extremadamente lejana (hacia el futuro), que parece carecer de sentido [...]

en esta observacion se sigue considerando la base de fechas de las hojas de calculo... 1900 [pero]...

a) Edgar comento que *su sistema* [scvde] tiene como *base 0* al a#o de 1600 [300 a#os antes]
[en dias] esa diferencia equivale a aumentar a cualquier fecha ~109,500 dias [300 x 365 -*bisiestos aparte*-]

b) Edgar expone tambien que el numero es dividido por (24*60*60)
lo cual indica que el numero *oficial* [127,637,727,330,312,000] -> representa segundos
por lo que el numero [fecha ?] *real* que se pretende convertir es: -> 1,477,288,510,768
[aun asi]... sigue siendo una fecha *distante* [en el futuro y aparentemente] *carente de sentido* -?-

en tanto Edgar comenta detalles nuevos...
saludos,
hector.



Respuesta Responder a este mensaje
#9 Héctor Miguel
11/06/2007 - 07:16 | Informe spam
hola, Edgard ! [a ver si *vamos por buen camino*] :D

__ 1 __
- CSVDE, es un comando de Directorio Activo:
http://technet2.microsoft.com/windo...x?mfr=true



1) CSVDE *significa* Comma Separeted Values Data Exchange [lo del *directorio activo* -creo- es aparte] -?-

__ 2 __
- Directorio Activo, tiene una capa o pasticion denominada "Esquema"
es donde se guardan los datos de los objetos como Cuentas de Usuarios, Cuentas de Coputador, Contactos, Impresoras y otros
dentro de los datos que almacena las Cuentas de Usuarios esta "LastLogon" o en Windows Server 2003 "LastLogonTimeStamp"
este valor es almacenada en formato "Integer8" de 64bits, ejemplo: 127637727330312000.



2) CSVDE *solo* esta disponible en [o para] Windows Server 2003 -?-

__ 3 __
- La formula =Date(1970;1;1)+cell/(24*60*60), la encontre en Internet, se supone que funciona
pero en mi caso me regresa solo simbolos de numeral, ########, al cambiar a formato fecha en las propiedades de celda.
- Richard L. Mueller, en su blog comenta la conversion de fecha a integer8:
http://www.rlmueller.net/Integer8Attributes.htm



3) aqui... *seguimos atascados* con la fecha *inicial*... que para las hojas de calculo es enero-01-1900
y segun Richard L. Mueller, para los datos de *integer8* su fecha de inicio es enero-01-1601 [299 a#os ANTES] <= OJO
sigue siendo imprescindible usar el complemento de John Walkenbach [si pretendes trabajar con fechas antes de 1900]

__ 4 __
- Lo que necesito, los datos ya los capture con e comando "scvde" creando un archivo de texto separado por comas
luego lo importe a una hoja de Excel, para poder filtrar los usuarios de manera facil y sencilla
necesito cambiar de integer8 a unformato de fecha, ejemplo:
Obtengo este numero de fecha del ultimo inicio de sesion de un usuario en el Controlador de Dominio:
127637727330312000 y necesito porder leerlo en un formato entendible: dd/mm/aaaa.



4) Richard L. Mueller comenta que...
a) "... the value represents the number of 100-nanosecond intervals since 12:00 AM January 1, 1601 ..."
b) tambien, en el algoritmo de *conversion* utiliza la siguiente expresion...
' Calculate number of 100-nanosecond intervals.
lngDuration = objDuration.HighPart * (2^32) + objDuration.Lowpart
c) *dependiendo* del como se obtiene el *HighPart* y el *LowPart* -???-
-> estoy haciendo las siguientes *asunciones/interpretaciones/adivinanzas/...*:

A) el numero que obtuviste [127637727330312000] esta representado por 100's-nanosegundos a partir de ene-01-1601
B) se requiere *traerlo* a datos-fecha *entendibles/leibles/interpretables/...* para excel [ene-01-1900 en adelante]
C) si suponemos que dicho *numero* lo tienes en la celda 'A1'...
1) convertirlo a segundos: ¡ / (60 * 10 ^ 7) equivale a: 212,729,545.55
o mejor aun... a dias: ¡ / ( 60 * 10 ^ 7 ) / ( 24 * 60 ) equivale a: 147,728.85
2) *rebajarle* los dias *perdidos* [para excel] de los 299 a#os...
¡ / ( 60 * 10 ^ 7 ) / ( 24 * 60 ) - ( 299 * 365 ) equivale a: 38,593.85 [lo que seria la *fecha actualizada* ?]
-> darle un formato de fecha/hora, devolveria algo +/- como lo siguiente: Ago/29/2005 8:25:33.031 p.m.
3) [seguramente] en tanto NO utilices el complemento de John Walkenbach... seguian perdidos algunos dias [los bisiestos ?]
podrias *medio-truquear* modificando la formula final +/- a lo siguiente:
¡ / ( 60 * 10 ^ 7 ) / ( 24 * 60 ) - ( 299 * 365 ) - ( 299 / 4 ) equivale a: 38,593.85 [lo que seria la *fecha actualizada* ?]
-> darle un formato de fecha/hora, devolveria algo +/- como lo siguiente: Jun/16/2005 2:25:33.031 a.m.

comentas que tan cerca/lejos *andamos* de lo que necesitas ?
saludos,
hector.
Respuesta Responder a este mensaje
#10 Edgard Gerardo
11/06/2007 - 16:25 | Informe spam
Si funciona la formula que me enviaste, gracias, pero me da la fecha con
cinco antes, es decir:

la fecha de hoy en integer8 es 128260080000000000, cuando lo combierto con
tu formula me regresa 06/06/2007.

qué haria falta para poder reparar esto???

Mil gracias...

"Héctor Miguel" wrote:

hola, Edgard ! [a ver si *vamos por buen camino*] :D

__ 1 __
> - CSVDE, es un comando de Directorio Activo:
> http://technet2.microsoft.com/windo...x?mfr=true

1) CSVDE *significa* Comma Separeted Values Data Exchange [lo del *directorio activo* -creo- es aparte] -?-

__ 2 __
> - Directorio Activo, tiene una capa o pasticion denominada "Esquema"
> es donde se guardan los datos de los objetos como Cuentas de Usuarios, Cuentas de Coputador, Contactos, Impresoras y otros
> dentro de los datos que almacena las Cuentas de Usuarios esta "LastLogon" o en Windows Server 2003 "LastLogonTimeStamp"
> este valor es almacenada en formato "Integer8" de 64bits, ejemplo: 127637727330312000.

2) CSVDE *solo* esta disponible en [o para] Windows Server 2003 -?-

__ 3 __
> - La formula =Date(1970;1;1)+cell/(24*60*60), la encontre en Internet, se supone que funciona
> pero en mi caso me regresa solo simbolos de numeral, ########, al cambiar a formato fecha en las propiedades de celda.
> - Richard L. Mueller, en su blog comenta la conversion de fecha a integer8:
> http://www.rlmueller.net/Integer8Attributes.htm

3) aqui... *seguimos atascados* con la fecha *inicial*... que para las hojas de calculo es enero-01-1900
y segun Richard L. Mueller, para los datos de *integer8* su fecha de inicio es enero-01-1601 [299 a#os ANTES] <= OJO
sigue siendo imprescindible usar el complemento de John Walkenbach [si pretendes trabajar con fechas antes de 1900]

__ 4 __
> - Lo que necesito, los datos ya los capture con e comando "scvde" creando un archivo de texto separado por comas
> luego lo importe a una hoja de Excel, para poder filtrar los usuarios de manera facil y sencilla
> necesito cambiar de integer8 a unformato de fecha, ejemplo:
> Obtengo este numero de fecha del ultimo inicio de sesion de un usuario en el Controlador de Dominio:
> 127637727330312000 y necesito porder leerlo en un formato entendible: dd/mm/aaaa.

4) Richard L. Mueller comenta que...
a) "... the value represents the number of 100-nanosecond intervals since 12:00 AM January 1, 1601 ..."
b) tambien, en el algoritmo de *conversion* utiliza la siguiente expresion...
' Calculate number of 100-nanosecond intervals.
lngDuration = objDuration.HighPart * (2^32) + objDuration.Lowpart
c) *dependiendo* del como se obtiene el *HighPart* y el *LowPart* -???-
-> estoy haciendo las siguientes *asunciones/interpretaciones/adivinanzas/...*:

A) el numero que obtuviste [127637727330312000] esta representado por 100's-nanosegundos a partir de ene-01-1601
B) se requiere *traerlo* a datos-fecha *entendibles/leibles/interpretables/...* para excel [ene-01-1900 en adelante]
C) si suponemos que dicho *numero* lo tienes en la celda 'A1'...
1) convertirlo a segundos: ¡ / (60 * 10 ^ 7) equivale a: 212,729,545.55
o mejor aun... a dias: ¡ / ( 60 * 10 ^ 7 ) / ( 24 * 60 ) equivale a: 147,728.85
2) *rebajarle* los dias *perdidos* [para excel] de los 299 a#os...
¡ / ( 60 * 10 ^ 7 ) / ( 24 * 60 ) - ( 299 * 365 ) equivale a: 38,593.85 [lo que seria la *fecha actualizada* ?]
-> darle un formato de fecha/hora, devolveria algo +/- como lo siguiente: Ago/29/2005 8:25:33.031 p.m.
3) [seguramente] en tanto NO utilices el complemento de John Walkenbach... seguian perdidos algunos dias [los bisiestos ?]
podrias *medio-truquear* modificando la formula final +/- a lo siguiente:
¡ / ( 60 * 10 ^ 7 ) / ( 24 * 60 ) - ( 299 * 365 ) - ( 299 / 4 ) equivale a: 38,593.85 [lo que seria la *fecha actualizada* ?]
-> darle un formato de fecha/hora, devolveria algo +/- como lo siguiente: Jun/16/2005 2:25:33.031 a.m.

comentas que tan cerca/lejos *andamos* de lo que necesitas ?
saludos,
hector.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida