How to Get Actual Date time not from server/network

Posted by vsuri87-15045 under C# on 4/13/2012 | Points: 10 | Views : 5976 | Status : [Member] | Replies : 5
Hi,

Now I want to get the actual time, not form any services. normal we have system.datetime.now means it's given what we are having in system time, but i change that system time, i want to get actual today's time.

Ex: my system time is :2012-04-13 today's date and it is normal method for

textbox.text= DateTime.Now; // it's gives 2012-04-13 , now i change my system time back/ forward that 2012-01-05 or 2012-10-06 like now i want to get that
textbox.text= here i want actual means today's date 2012-04-13

how we can get that time for this situation. Can you have any code for this

Please send that code

Thanks
Surendra




Responses

Posted by: Vuyiswamb on: 4/13/2012 [Member] [MVP] [Administrator] NotApplicable | Points: 25

Up
0
Down
The Time that you change get stored in the CMOS , if you change the time of your Machine , you will what you have change, but there is Time that you can reply on which must always be correct. So the Following will get you the Correct time always



public static DateTime GetNISTDate(bool convertToLocalTime)

{
Random ran = new Random(DateTime.Now.Millisecond);
DateTime date = DateTime.Today;
string serverResponse = string.Empty;

// Represents the list of NIST servers
string[] servers = new string[] {
"64.90.182.55",
"206.246.118.250",
"207.200.81.113",
"128.138.188.172",
"64.113.32.5",
"64.147.116.229",
"64.125.78.85",
"128.138.188.172"
};

// Try each server in random order to avoid blocked requests due to too frequent request
for (int i = 0; i < 5; i++)
{
try
{
// Open a StreamReader to a random time server
StreamReader reader = new StreamReader(new System.Net.Sockets.TcpClient(servers[ran.Next(0, servers.Length)], 13).GetStream());
serverResponse = reader.ReadToEnd();
reader.Close();

// Check to see that the signiture is there
if (serverResponse.Length > 47 && serverResponse.Substring(38, 9).Equals("UTC(NIST)"))
{
// Parse the date
int jd = int.Parse(serverResponse.Substring(1, 5));
int yr = int.Parse(serverResponse.Substring(7, 2));
int mo = int.Parse(serverResponse.Substring(10, 2));
int dy = int.Parse(serverResponse.Substring(13, 2));
int hr = int.Parse(serverResponse.Substring(16, 2));
int mm = int.Parse(serverResponse.Substring(19, 2));
int sc = int.Parse(serverResponse.Substring(22, 2));

if (jd > 51544)
yr += 2000;
else
yr += 1999;

date = new DateTime(yr, mo, dy, hr, mm, sc);

// Convert it to the current timezone if desired
if (convertToLocalTime)
date = date.ToLocalTime();

// Exit the loop
break;
}

}
catch (Exception ex)
{
/* Do Nothing...try the next server */
}
}

return date;
}


or get the time from the Domain Controller like this


using System.DirectoryServices.ActiveDirectory;

static void FindAnyTimeServer(DirectoryContext context)
{
try
{
DomainController dc = DomainController.FindOne(context, LocatorOptions.TimeServerRequired);
Console.WriteLine("A time server for {0} is {1}.", context.Target, dc.Name);
}
catch (ActiveDirectoryObjectNotFoundException)
{
// No time server found.
Console.WriteLine("No time server was found in {0}.", context.Target);
}
}


Thank you for posting at Dotnetfunda
[Administrator]

vsuri87-15045, if this helps please login to Mark As Answer. | Alert Moderator

Posted by: vsuri87-15045 on: 4/13/2012 [Member] Starter | Points: 25

Up
0
Down
Hi Vuyiswamb,

Thanks For giving that suggest, but we don't want use any servers/Network i want stand alone system.


vsuri87-15045, if this helps please login to Mark As Answer. | Alert Moderator

Posted by: Vuyiswamb on: 4/13/2012 [Member] [MVP] [Administrator] NotApplicable | Points: 25

Up
0
Down
There is no other way

Thank you for posting at Dotnetfunda
[Administrator]

vsuri87-15045, if this helps please login to Mark As Answer. | Alert Moderator

Posted by: vsuri87-15045 on: 4/13/2012 [Member] Starter | Points: 25

Up
0
Down
I am using these servers and yahoo service and nist services all are using but my PM asking for this only for not network/any services

vsuri87-15045, if this helps please login to Mark As Answer. | Alert Moderator

Posted by: vsuri87-15045 on: 4/13/2012 [Member] Starter | Points: 25

Up
0
Down
Thanks for giving reply for this.

vsuri87-15045, if this helps please login to Mark As Answer. | Alert Moderator

Login to post response