Maison >Java >javaDidacticiel >« Java.sql.Timestamp » stocke-t-il les informations sur le fuseau horaire ?
Le fuseau horaire java.sql.Timestamp est-il spécifique ?
Contexte :
setTimestamp de JDBC( int ParameterIndex, Timestamp x) attribue un horodatage à une colonne de base de données sans spécifier explicitement le fuseau horaire. Cela soulève la question : Timestamp contient-il des informations sur le fuseau horaire ?
Réponse :
Non, java.sql.Timestamp ne contient pas intrinsèquement d'informations sur le fuseau horaire.
Explication :
Lors de l'appel de setTimestamp(...), le Le pilote JDBC s'appuie sur le fuseau horaire de la machine virtuelle exécutant l'application pour déterminer la date et l'heure à stocker. Cela signifie que la valeur stockée ne conserve pas les informations de fuseau horaire.
Exemple :
Considérez le scénario suivant :
Dans ce cas, le pilote convertira l'heure UTC en IST (en fonction du fuseau horaire de la machine virtuelle) et la stockera sous "20121225 12:00:00 " dans la base de données.
Stockage des horodatages dans des Fuseaux horaires :
Pour stocker les horodatages dans un fuseau horaire spécifique, utilisez la méthode setTimestamp(int parameterIndex, Timestamp x, Calendar cal). Spécifiez un objet Calendrier avec le fuseau horaire souhaité pour garantir que l'horodatage est stocké en conséquence.
Considérations supplémentaires :
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!