gpt4 book ai didi

Android:日期未显示为本地时间

转载 作者:行者123 更新时间:2023-11-29 01:23:03 25 4
gpt4 key购买 nike

我正在尝试从 sqlite 数据库中检索一个 date 并将其显示在 TextView 中。尽管使用了 TimeZone.getDefault(),时间仍然显示为 GMT 时间,而不是本地时间。

这是我尝试将日期转换为本地时间的方法:

public String formatDate(String stringDate) {
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss");
try {
Date date = sdf.parse(stringDate);
TimeZone tz = TimeZone.getDefault();
sdf.setTimeZone(tz);
Log.v("formatDate", "TimeZone " + tz.getDisplayName(false, TimeZone.SHORT) + " Timezon id :: " + tz.getID());
return sdf.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return stringDate;
}

如您所见,我想查看时区 是否实际上是本地时间,并为此添加了一条日志语句。这是日志语句的输出:

02-25 15:15:55.422 29855-29855/com.example.ishita.assigntasks V/formatDate: TimeZone   GMT+05:30 Timezon id :: Asia/Calcutta

这是我调用 formatDate() 的行:

viewHolder.timeStamp.setText(formatDate(cursor.getString(cursor.getColumnIndex(TasksContract.MessageEntry.COL_AT))));

请指出我哪里出错了,以及我可以做些什么来显示设备所在时区的日期/时间。

最佳答案

我认为你没有转换任何东西,因为 SimpleDateFormat 默认使用默认时区,所以你正在用相同的时区解析和格式化日期。如果您在解析日期之前将时区设置为 UTC (然后在格式化之前恢复为默认值),会发生什么情况? :

    DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss");

// convert from UTC
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

try {

关于Android:日期未显示为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35623720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com