1515628800000 конвертировать в формат даты в c # [дубликат]

Если у вас установлен mingw

pip install --global-option build_ext --global-option --compiler=mingw32 packagename

, принудительное создание пипов с использованием компилятора mingw вместо Microsoft. См. Здесь https://github.com/pypa/pip/issues/18 для получения подробной информации (последняя запись).

26
задан danny 29 June 2012 в 16:14
поделиться

8 ответов

Начните с преобразования ваших миллисекунд в TimeSpan:

var time = TimeSpan.FromMilliseconds(milliseconds);

Теперь в .NET 4 вы можете вызвать .ToString() с аргументом строки формата. См. http://msdn.microsoft.com/en-us/library/system.timespan.tostring.aspx

. В предыдущих версиях .NET вам придется вручную создайте форматированную строку из свойств TimeSpan.

31
ответ дан Jay 24 August 2018 в 05:50
поделиться

new DateTime (numTicks * 10000)

Конструктор DateTime (long ticks) - это то, что вам нужно. Каждый тик представляет собой 100 наносекунд, поэтому умножайтесь на 10000, чтобы добраться до 1 миллисекунды.

20
ответ дан Babak Naffas 24 August 2018 в 05:50
поделиться

Этот вопрос должен иметь ответ, который вам нужен .

Короткая версия:

DateTime date = new DateTime(long.Parse(ticks));
date.ToString("yyyy-MM-ddThh:mm:ssZ");
-5
ответ дан Community 24 August 2018 в 05:50
поделиться

Этот пример продемонстрирует общую идею, но вам нужно знать, является ли ваша дата начала DateTime.MinValue или что-то еще:

int ms = 1000;                          // One second
var date = new DateTime(ms * 10000);    // The constructor takes number of 100-nanoseconds ticks since DateTime.MinValue (midnight, january 1st, year 1)
string formatted = date.ToString("yyyy-MM-ddTHH:mm:ssZ");
Console.WriteLine(formatted);
3
ответ дан driis 24 August 2018 в 05:50
поделиться

Это сработало для меня:

DateTimeOffset.FromUnixTimeMilliseconds(milliseconds);

Вы можете получить от него только DateTime, если вам это нужно.

5
ответ дан mvandillen 24 August 2018 в 05:50
поделиться

Если миллисекунды основаны на времени эпохи UNIX , вы можете использовать:

var posixTime = DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc);
var time = posixTime.AddMilliseconds(milliSecs);
18
ответ дан Prakash G. R. 24 August 2018 в 05:50
поделиться

Здесь вы:

public static class UnixDateTime
    {
        public static DateTimeOffset FromUnixTimeSeconds(long seconds)
        {
            if (seconds < -62135596800L || seconds > 253402300799L)
                throw new ArgumentOutOfRangeException("seconds", seconds, "");

            return new DateTimeOffset(seconds * 10000000L + 621355968000000000L, TimeSpan.Zero);
        }

        public static DateTimeOffset FromUnixTimeMilliseconds(long milliseconds)
        {
            if (milliseconds < -62135596800000L || milliseconds > 253402300799999L)
                throw new ArgumentOutOfRangeException("milliseconds", milliseconds, "");

            return new DateTimeOffset(milliseconds * 10000L + 621355968000000000L, TimeSpan.Zero);
        }

        public static long ToUnixTimeSeconds(this DateTimeOffset utcDateTime)
        {
            return utcDateTime.Ticks / 10000000L - 62135596800L;
        }

        public static long ToUnixTimeMilliseconds(this DateTimeOffset utcDateTime)
        {
            return utcDateTime.Ticks / 10000L - 62135596800000L;
        }

        [Test]
        public void UnixSeconds()
        {
            DateTime utcNow = DateTime.UtcNow;
            DateTimeOffset utcNowOffset = new DateTimeOffset(utcNow);

            long unixTimestampInSeconds = utcNowOffset.ToUnixTimeSeconds();

            DateTimeOffset utcNowOffsetTest = UnixDateTime.FromUnixTimeSeconds(unixTimestampInSeconds);

            Assert.AreEqual(utcNowOffset.Year, utcNowOffsetTest.Year);
            Assert.AreEqual(utcNowOffset.Month, utcNowOffsetTest.Month);
            Assert.AreEqual(utcNowOffset.Date, utcNowOffsetTest.Date);
            Assert.AreEqual(utcNowOffset.Hour, utcNowOffsetTest.Hour);
            Assert.AreEqual(utcNowOffset.Minute, utcNowOffsetTest.Minute);
            Assert.AreEqual(utcNowOffset.Second, utcNowOffsetTest.Second);
        }

        [Test]
        public void UnixMilliseconds()
        {
            DateTime utcNow = DateTime.UtcNow;
            DateTimeOffset utcNowOffset = new DateTimeOffset(utcNow);

            long unixTimestampInMilliseconds = utcNowOffset.ToUnixTimeMilliseconds();

            DateTimeOffset utcNowOffsetTest = UnixDateTime.FromUnixTimeMilliseconds(unixTimestampInMilliseconds);

            Assert.AreEqual(utcNowOffset.Year, utcNowOffsetTest.Year);
            Assert.AreEqual(utcNowOffset.Month, utcNowOffsetTest.Month);
            Assert.AreEqual(utcNowOffset.Date, utcNowOffsetTest.Date);
            Assert.AreEqual(utcNowOffset.Hour, utcNowOffsetTest.Hour);
            Assert.AreEqual(utcNowOffset.Minute, utcNowOffsetTest.Minute);
            Assert.AreEqual(utcNowOffset.Second, utcNowOffsetTest.Second);
            Assert.AreEqual(utcNowOffset.Millisecond, utcNowOffsetTest.Millisecond);
        }
    }
3
ответ дан superlogical 24 August 2018 в 05:50
поделиться

Вы можете построить свое datetime из тиков :

long ticks = new DateTime(1979, 07, 28, 22, 35, 5, 
  new CultureInfo("en-US", false).Calendar).Ticks;
DateTime dt3 = new DateTime(ticks);
Console.Write(dt3.ToString("yyyy-MM-ddThh:mm:ssZ"));
1
ответ дан VMAtm 24 August 2018 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: