/* * Copyright (C) 2005 Alfresco, Inc. * * Licensed under the Mozilla Public License version 1.1 * with a permitted attribution clause. You may obtain a * copy of the License at * * http://www.alfresco.org/legal/license.txt * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific * language governing permissions and limitations under the * License. */ package org.alfresco.filesys.smb; import java.util.Date; /** * NT 64bit Time Conversion Class *

* Convert an NT 64bit time value to a Java Date value and vice versa. */ public class NTTime { // NT time value indicating infinite time public static final long InfiniteTime = 0x7FFFFFFFFFFFFFFFL; // Time conversion constant, difference between NT 64bit base date of 1-1-1601 00:00:00 and // Java base date of 1-1-1970 00:00:00. In 100ns units. private static final long TIME_CONVERSION = 116444736000000000L; /** * Convert a Java Date value to an NT 64bit time * * @param jdate Date * @return long */ public final static long toNTTime(Date jdate) { // Add the conversion constant to the Java date raw value, convert the Java milliseconds to // 100ns units long ntDate = (jdate.getTime() * 10000L) + TIME_CONVERSION; return ntDate; } /** * Convert a Java Date value to an NT 64bit time * * @param jdate long * @return long */ public final static long toNTTime(long jdate) { // Add the conversion constant to the Java date raw value, convert the Java milliseconds to // 100ns units long ntDate = (jdate * 10000L) + TIME_CONVERSION; return ntDate; } /** * Convert an NT 64bit time value to a Java date value * * @param ntDate long * @return SMBDate */ public final static SMBDate toSMBDate(long ntDate) { // Convert the NT 64bit 100ns time value to a Java milliseconds value long jDate = (ntDate - TIME_CONVERSION) / 10000L; return new SMBDate(jDate); } /** * Convert an NT 64bit time value to a Java date value * * @param ntDate long * @return long */ public final static long toJavaDate(long ntDate) { // Convert the NT 64bit 100ns time value to a Java milliseconds value long jDate = (ntDate - TIME_CONVERSION) / 10000L; return jDate; } }