Нет, не делай этого.Когда-либо!
Если вы храните раза в локальной форме, вас ждет мир боли.В основном вам нужно хранить как местное время, так и местный часовой пояс, и отображение времени становится комплексным зверем (при обработке исходного и целевого часовых поясов).
Время должно быть сохранено как UTC.Не исключениеВремя, введенное пользователем, должно быть преобразовано в UTC, прежде чем оно будет записано в любом месте (как можно скорее).
Время, которое будет показано пользователю, должно быть преобразовано из UTC в локальное как можно позднее.
Возьмите этот совет от кого-то, кто когда-то увяз в болоте с несколькими часовыми поясами.Использование UTC и преобразование только тогда, когда это необходимо, сделает вашу жизнь намного проще.
Если у вас есть время в формате UTC, вам нужно использовать класс SimpleDateFormat
для его преобразования:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class scratch {
public static void main (String args[]) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone (TimeZone.getTimeZone ("IST"));
System.out.println ("Time in IST is " + sdf.format (now));
}
}
Это выводит:
Time in IST is 2011-04-11 13:40:04
, который совпадает с текущим временем в Mirzapur , который, я думаю, является тем, где базируется IST (не то, что это имеет значение в Индии в настоящее время, так какон имеет только один часовой пояс).