using UnityEngine; using System.Collections; using System.Runtime.InteropServices; using System.Data; using System.Data.SqlClient; public class ChangeTime { //Kernel32.dll在32位系統和64位系統有區別,64位系統中需要設置為以管理員身份運行 [DllImport("Kernel32.dll",SetLastError=true,EntryPoint="SetLocalTime")] static extern int SetLocalTime(ref SystemDateTime lpSystemDateTime); public static string GetCurrentTimeFromDB() { string result = ""; //從數據庫中獲取系統當前時間 //設置連接字符串 SqlConnection con = new SqlConnection ("Data Source=192.168.0.1;Initial Catalog=DB;User ID=sa;password=123456"); SqlCommand cmd = new SqlCommand (); cmd.Connection = con; cmd.CommandType = System.Data.CommandType.Text; //設置連接語句 cmd.CommandText = "select getdate()"; SqlDataAdapter sda = new SqlDataAdapter(cmd); //開啟 sda.SelectCommand.Connection.Open(); result = sda.SelectCommand.ExecuteScalar().ToString(); //關閉 sda.SelectCommand.Connection.Close(); return result; } public static void SetLocalDae(string dateTime) { System.DateTime date = System.DateTime.Parse(dateTime); SystemDateTime sysNew = new SystemDateTime(); //設置屬性 sysNew.tYear = short.Parse(date.Year.ToString()); sysNew.tMonth = short.Parse(date.Month.ToString()); sysNew.tDay = short.Parse(date.Day.ToString()); sysNew.tHour = short.Parse(date.Hour.ToString()); sysNew.tMinute = short.Parse(date.Minute.ToString()); sysNew.tSecond = short.Parse(date.Second.ToString()); //調用API,更新系統時間 SetLocalTime(ref sysNew); } } /// <summary> /// 定義變量用于接收 /// </summary> public class SystemDateTime { public short tYear; public short tMonth; public short tDayOfWeek; public short tDay; public short tHour; public short tMinute; public short tSecond; public short tMilliseconds; }