Maison >développement back-end >C++ >Comment convertir entre les horodatages Unix et les objets DateTime dans .NET et Java?

Comment convertir entre les horodatages Unix et les objets DateTime dans .NET et Java?

Linda Hamilton
Linda Hamiltonoriginal
2025-02-01 23:41:10487parcourir

How to Convert Between Unix Timestamps and DateTime Objects in .NET and Java?

<.> Dans le .NET et Java pour convertir les horodatages Unix et les objets DateTime

Dans .NET ou Java, il est souvent nécessaire de convertir entre l'horodatage Unix (le nombre de secondes ou de millisecondes depuis l'ère) et l'objet DateTime.

Convertir l'horodatage Unix en DateTime

Dans .NET, utilisez le code suivant pour convertir un horodatage UNIX (en secondes) aux dates:

En Java, l'horodatage est en millisecondes, et ce code est utilisé:

<code class="language-C#">public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
    // Unix时间戳是自纪元以来的秒数
    DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    dateTime = dateTime.AddSeconds(unixTimeStamp).ToLocalTime();
    return dateTime;
}</code>

Convertir DateTime en horodatage UNIX

<code class="language-java">// Java代码示例,此处应使用Java的日期时间类,而非.NET的DateTime
public static java.time.LocalDateTime JavaTimeStampToDateTime(long javaTimeStamp) {
    return java.time.Instant.ofEpochMilli(javaTimeStamp).atZone(java.time.ZoneId.systemDefault()).toLocalDateTime();
}</code>

Pour convertir DateTime en horodatage Unix, inversez simplement le processus:

Veuillez noter que l'exemple Java utilise la classe dans le package

fourni par les versions Java 8 et supérieures, qui fournit une méthode de traitement de date et de temps plus moderne et plus robuste que l'ancien
<code class="language-C#">public double DateTimeToUnixTimeStamp(DateTime dateTime)
{
    DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    TimeSpan span = dateTime.ToUniversalTime() - epoch;
    return span.TotalSeconds;
}</code>
. L'exemple .NET reste inchangé car le fragment de code lui-même a utilisé la classe DateTime du .NET.
<code class="language-java">// Java代码示例
public static long DateTimeToJavaTimeStamp(java.time.LocalDateTime dateTime) {
    return dateTime.atZone(java.time.ZoneId.systemDefault()).toInstant().toEpochMilli();
}</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn