2017-01-19 2 views
0

J'ai téléchargé Java Native Access dans Eclipse pour l'utiliser dans un programme, en particulier pour utiliser une variable time_t date afin d'obtenir un horodatage unix. Cette structure existe-t-elle ou est-ce sous une autre forme?Est-ce que time_t existe dans JNA?

Dans le cas où il n'existe pas, quelle serait ma meilleure alternative pour obtenir le temps d'utiliser System.currentTimeMillis()?

+0

Quelles fonctions natives essayez-vous d'utiliser? Cela a une grande incidence sur la "meilleure" façon d'obtenir un temps d'époque Unix et quel type à utiliser pour le représenter. – technomage

Répondre

0

JNA n'a pas de type spécifique pour time_t car il est généralement facile à modéliser sur un système d'exploitation particulier par un type primitif existant.

Vous pouvez définir un vous-même facilement ... sur macOS vous pouvez simplement le remplacer par un NativeLong ou de l'utilisation:

class time_t extends IntegerType { 
    public time_t() { 
     super(Native.LONG_SIZE); 
    } 
} 

Depuis time_t is defined in seconds, vous pouvez utiliser System.currentTimeMillis() si vous divisez par 1000. Tout dépend de l'utilisation que vous avez de la variable. Généralement, si vous utilisez JNA, vous essayez d'utiliser une valeur de temps native.