K
Krax
Gast
Hey,
ich verwende diesen Code, um von einem Zeitserver, der sich in meinem LAN befindet, die Zeit auslesen. Aber irgendwie ist die Ausgabe einen Tag daneben.
Wisst ihr, warum?
public static void main( String[] args )
{
final String SERVER = "192.168.100.4
final SimpleDateFormat DATUMFORMAT = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
final long SEKUNDEN_1900_1970 = 2208988800L;
Socket so = null;
InputStream in = null;
long time = 0;
try {
so = new Socket( SERVER, 37 );
in = so.getInputStream();
for( int i = 3; i >= 0; i-- ) {
time ^= (long) in.read() << i * 8;
}
System.out.println( DATUMFORMAT.format( new Date( (time - SEKUNDEN_1900_1970) * 1000 ) ) );
} catch( Exception ex ) {
System.out.println( ex );
} finally {
if( in != null ) try { in.close(); } catch( IOException ex ) {/*ok*/}
if( so != null ) try { so.close(); } catch( IOException ex ) {/*ok*/}
}
}
ich verwende diesen Code, um von einem Zeitserver, der sich in meinem LAN befindet, die Zeit auslesen. Aber irgendwie ist die Ausgabe einen Tag daneben.
Wisst ihr, warum?
public static void main( String[] args )
{
final String SERVER = "192.168.100.4
final SimpleDateFormat DATUMFORMAT = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
final long SEKUNDEN_1900_1970 = 2208988800L;
Socket so = null;
InputStream in = null;
long time = 0;
try {
so = new Socket( SERVER, 37 );
in = so.getInputStream();
for( int i = 3; i >= 0; i-- ) {
time ^= (long) in.read() << i * 8;
}
System.out.println( DATUMFORMAT.format( new Date( (time - SEKUNDEN_1900_1970) * 1000 ) ) );
} catch( Exception ex ) {
System.out.println( ex );
} finally {
if( in != null ) try { in.close(); } catch( IOException ex ) {/*ok*/}
if( so != null ) try { so.close(); } catch( IOException ex ) {/*ok*/}
}
}