Ответ 1
Объект DateTime может быть создан с определенным значением тиков. После того, как вы определили значение тика, вы можете сделать следующее:
DateTime myDate = new DateTime(numberOfTicks);
String test = myDate.ToString("MMMM dd, yyyy");
Я преобразую значение тиков в дату следующего вида:
Convert(datetime, (MachineGroups.TimeAdded - 599266080000000000)/864000000000);
Используя это, я получаю:
9/27/2009 10:50:27 PM
Но я хочу только дату в этом формате:
October 1, 2009
Значение моих тиков
633896886277130000
Каков наилучший способ сделать это?
Объект DateTime может быть создан с определенным значением тиков. После того, как вы определили значение тика, вы можете сделать следующее:
DateTime myDate = new DateTime(numberOfTicks);
String test = myDate.ToString("MMMM dd, yyyy");
Намного проще сделать это:
DateTime dt = new DateTime(633896886277130000);
Который дает
dt.ToString() ==> "9/27/2009 10:50:27 PM"
Вы можете отформатировать это любым способом, используя dt.ToString(MyFormat)
. Обратитесь к этой ссылке для форматирования строк. "MMMM dd, yyyy"
работает для того, что вы указали в вопросе.
Не уверен, где вы получите 1 октября.
private void button1_Click(object sender, EventArgs e)
{
long myTicks = 633896886277130000;
DateTime dtime = new DateTime(myTicks);
MessageBox.Show(dtime.ToString("MMMM d, yyyy"));
}
дает
September 27, 2009
Это то, что вам нужно?
Я не вижу, как этот формат всегда легко работать с SQL-запросами.
Ответы до сих пор помогли мне придумать мои. Я опасаюсь UTC против локального времени; галочки всегда должны быть UTC IMO.
public class Time
{
public static void Timestamps()
{
OutputTimestamp();
Thread.Sleep(1000);
OutputTimestamp();
}
private static void OutputTimestamp()
{
var timestamp = DateTime.UtcNow.Ticks;
var localTicks = DateTime.Now.Ticks;
var localTime = new DateTime(timestamp, DateTimeKind.Utc).ToLocalTime();
Console.Out.WriteLine("Timestamp = {0}. Local ticks = {1}. Local time = {2}.", timestamp, localTicks, localTime);
}
}
Выход:
Timestamp = 636988286338754530. Local ticks = 636988034338754530. Local time = 2019-07-15 4:03:53 PM.
Timestamp = 636988286348878736. Local ticks = 636988034348878736. Local time = 2019-07-15 4:03:54 PM.