using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
namespace BatchService.Framework.Utility
{
public static class DateTimeUtil
{
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEMTIME
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMilliseconds;
public void FromDateTime(DateTime dateTime)
{
wYear = (ushort)dateTime.Year;
wMonth = (ushort)dateTime.Month;
wDayOfWeek = (ushort)dateTime.DayOfWeek;
wDay = (ushort)dateTime.Day;
wHour = (ushort)dateTime.Hour;
wMinute = (ushort)dateTime.Minute;
wSecond = (ushort)dateTime.Second;
wMilliseconds = (ushort)dateTime.Millisecond;
}
public DateTime ToDateTime()
{
return new DateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond);
}
}
//设定,获取系统时间,SetSystemTime()默认设置的为UTC时间,比北京时间少了8个小时。
[DllImport("Kernel32.dll")]
public static extern bool SetSystemTime(ref SYSTEMTIME time);
[DllImport("Kernel32.dll")]
public static extern bool SetLocalTime(ref SYSTEMTIME time);
[DllImport("Kernel32.dll")]
public static extern void GetSystemTime(ref SYSTEMTIME time);
[DllImport("Kernel32.dll")]
public static extern void GetLocalTime(ref SYSTEMTIME time);
///
/// 微信的CreateTime是当前与1970-01-01 00:00:00之间的秒数 ///
/// ///
public static string DateTimeToInt(this DateTime dt)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
//intResult = (time- startTime).TotalMilliseconds;
long t = (dt.Ticks - startTime.Ticks) / 10000000; //现在是10位,除10000调整为13位
return t.ToString();
}
}
}