Если вы еще не знаете часовой пояс пользователя, вам понадобится некоторый клиентский JavaScript для передачи этой информации на ваш сервер.
var d =new Date();
d.getTimezoneOffset(); // send this value to the server
Используйте смещение часового пояса, чтобы выбрать часовой пояси используйте этот часовой пояс при форматировании даты, как объясняют другие ответы.
На самом деле, если подумать, может быть более простой способ удовлетворить ваши требования.Если вы хотите отформатировать дату на стороне сервера, как я упоминал выше, дайте мне знать.В противном случае этот метод может быть намного, намного проще ...
Если ваша отформатированная строка всегда должна читаться как ГГГГ-ММ-ДД ..., включите следующий код в раздел страницы:
<script type="text/javascript" language='JavaScript'>
<!--
function formatDate(millis) {
var d =new Date(millis);
return d.getFullYear() +"-" +(d.getMonth() +1) +"-" +d.getDate() +" " +d.getHours() +":" +d.getMinutes() +":" +d.getSeconds() +"." +d.getMilliseconds();
}
// -->
</script>
Затем, где бы на странице вам ни понадобилась форматированная дата, включите следующий код JavaScript
<script type="text/javascript" language='JavaScript'>
<!--
document.write(formatDate(XXXX));
// -->
</script>
Замена XXXX на дату в миллисекундах.Например, если вы генерируете страницу с использованием JSP, то в своем коде Java используйте
request.setAttribute("dateInMillis", date.getTime());
, а затем в своем JSP используйте JavaScript сверху, заменив XXXX следующим образом:
document.write(formatDate(${dateInMillis}));