C# converter Ticks no UNIX timestamp e outros formatos

Conversor de c# Ticks Usando as funções de DateTime do. NET Framework pode ser com um monte de coisas. O tratamento é, na minha opinião, muito agradável. A única exigência: encontra-se em um puro. Ambiente de rede. Outros sistemas estão em jogo, as somas que vamos. Mas por que é que você não pode comparar com o exemplo de mktime() de função PHP Ticks?

Obtém um “timestamp” de um objeto DateTime (Ticks), para que seja o número de tiques desde o 01.01.0001 00:00 relógio de volta. Um carrapato, por sua vez, é tempo de 100 nanossegundos.
Um timestamp UNIX, assim por exemplo ele produzido como mktime() retorna o número de segundos, ao contrário de Ticks desde o 1 de janeiro de 1970.
Uma comparação direta não é possível. Como deve ser convertido, eu gostaria de mostrar-lhe hoje com base em alguns trechos curtos.

UNIX timestamp-> Ticks

privado estático DateTime TimeFromUnixTimestamp (int unixTimestamp) {DateTime unixYear0 = novo DateTime (1970, 1, 1); long unixTimeStampInTicks = unixTimestamp * TimeSpan. TicksPerSecond;} DtUnix DateTime = DateTime nova (unixYear0.Ticks + unixTimeStampInTicks); Return dtUnix;}

Primeiro, ele cria um objeto DateTime, que especifica o tempo do início do tempo do Unix. Então o UNIX timestamp (especificado em segundos) em escalas será convertido. Finalmente, um novo objeto DateTime é criado que contém os carrapatos do início da era UNIX, bem como o Unix tempo abrange em carrapatos.

Ticks-> Unix timestamp

UnixTimestampFromDateTime tempo estático público (DateTime Data) {data unixTimestamp = longa. Carrapatos – nova DateTime (1970, 1, 1). Carrapatos; unixTimestamp = TimeSpan. TicksPerSecond; Return unixTimestamp;}

Em primeiro lugar, o número de tiques desde o início do tempo DateTime (ver introdução) será deduzido até o início do tempo do Unix. Então um tem realizado apenas praticamente já um timestamp UNIX para carrapatos em segundos. Eles convertido em conclusão de carrapatos em segundos (TimeSpan. TicksPerSecond é nosso amigo) e a conversão for concluída.

[Java] System.currentTimeMillis()-> Ticks

privado estático DateTime TimeFromJavaTimestamp (tempo javaTimestamp) {(retornar TimeFromUnixTimestamp((int)(javaTimestamp / 1000));}

O timestamp de Java (System.currentTimeMillis()) é quase idêntico com o padrão Unix timestamp. O tempo também começa na 1 de janeiro de 1970. A diferença é apenas que o timestamp é especificado em Java, em milissegundos, em vez de segundos. Assim nós podemos nos para criar a função acima para converter para usar make e seu resultado é só dividir por 1000.

Ticks-> System.currentTimeMillis() [Java]

JavaTimestampFromDateTime tempo estático público (DateTime Data) {(retorno (UnixTimestampFromDateTime(date) * 1000);}

Para converter um timestamp de Java Ticks, devemos criar apenas um timestamp UNIX e multiplique por 1000. (Por isso que é assim que eu tinha descrito mais acima já um parágrafo).

Introdução ao c# com Visual Studio 2017: ideal para o iniciante

Edição de Thomas Theis – computação trabalho de Rhine – não. 5 (27/03/2017) – paperback: 549 páginas

29,90 Eurico esperança pudesse a um ou outro à procura de uma ajudinha. Se você tiver dúvidas ou sugestões, escreva um comentário me simplesmente. Estou feliz de rever o artigo, se você tem uma sugestão melhor. (Você nunca para de aprender.)

Muitos cumprimentos,
Raffi

Sobre o autor: Este artigo, bem como 363 outros artigos sobre código-bude.net, escrito por Raphael. -Desde 2011 blog aqui sobre programação, meu software, escrever tutoriais e tentar o meu conhecimento, portanto ele vai bem, para compartilhar com meus leitores.Além disso, escrevo sobre temas de meus estudos sobre derwirtschaftsinformatiker.de. E-mail • Google + • Facebook • Twitter


0SHARESFacebookTwitterGoogleWhatsappRedditPocketStumbleuponPinterestXingMail