Java 将设备本地时区上的日期更改为字符串
我正在从数据库中获取一个Java 将设备本地时区上的日期更改为字符串,java,android,Java,Android,我正在从数据库中获取一个Date数据类型,如下所示Mon Sep 14 11:30:00 GMT+03:00 2020。我想将此值更改为字符串,因此我使用了此函数 public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm"; public static String dateToString(Date date){ DateFormat dateFormat = new SimpleDateFormat(
Date
数据类型,如下所示Mon Sep 14 11:30:00 GMT+03:00 2020
。我想将此值更改为字符串,因此我使用了此函数
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm";
public static String dateToString(Date date){
DateFormat dateFormat = new SimpleDateFormat(General.DATE_FORMAT);
dateFormat.setTimeZone(TimeZone.getDefault());
if(date == null)
return "";
return dateFormat.format(date);
}
这个函数给了我这个输出2020-09-14 11:30
,但根据我的android设备时区,它应该是2020-09-14 02:30
。有什么建议吗?试着提前设置好
TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
您可以使用它,它可以通过now降低Android API级别
此代码输出
2020-09-1411:30
2020-09-14 10:30
请注意输出当然采用了我当前的偏移量,即UTC+02:00。尝试
getDefault()
语言环境方法
public static String dateToString(Date date){
DateFormat dateFormat = new SimpleDateFormat(General.DATE_FORMAT, Locale.getDefault());
dateFormat.setTimeZone(TimeZone.getDefault());
if(date == null)
return "";
return dateFormat.format(date);
}
希望它对你有用。谢谢。只需删除这一行
dateFormat.setTimeZone(TimeZone.getDefault())代码>
public static String dateToString(Date date){
DateFormat dateFormat = new SimpleDateFormat(General.DATE_FORMAT, Locale.getDefault());
dateFormat.setTimeZone(TimeZone.getDefault());
if(date == null)
return "";
return dateFormat.format(date);
}