android日期滚动为何会反向,如何从美国时间获取反向时间的Android

这篇博客讨论了如何在Android应用中,根据用户的设备时区正确显示从服务器获取的时间。代码示例展示了如何将字符串时间转换为毫秒,并计算与当前时间的差值,然后以友好格式(如'几分钟前','几小时前'等)展示。问题在于,当前代码使用的是UTC时区,需要调整以适应设备的本地时区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.currenttime;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.TimeZone;

public class Functions {

private static long converTimeStringINToMillis1(String time) {

long milliseconds = 0;

try {

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");

sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

// 25/06/2014 8:41:26

Date date;

date = sdf.parse(time);

milliseconds = date.getTime();

} catch (ParseException e) {

// TODO Auto-generated catch block

milliseconds = 0;

e.printStackTrace();

}

return milliseconds;

}

public static String setLastSeenTime1(String time) {

long milliseconds = Math.abs(System.currentTimeMillis()

- converTimeStringINToMillis1(time));

String lastSeen = "";

int seconds = (int) milliseconds/1000;

if (seconds < 60)

lastSeen = String.valueOf(seconds) + "sec ago";

else if (seconds > 60 && seconds < 3600)

lastSeen = String.valueOf((int) seconds/60) + " min ago";

else if (seconds > 3600 && seconds < 86400)

lastSeen = String.valueOf((int) seconds/3600) + " hours ago";

else if (seconds > 86400 && seconds < 172800)

lastSeen = " Yesterday";

else if (seconds > 172800 && seconds < 2592000)

lastSeen = String.valueOf((int) (seconds/(24 * 3600)))

+ " days ago";

else if (seconds > 2592000)

lastSeen = String.valueOf((int) (seconds/(30 * 24 * 3600)))

+ " months ago";

return lastSeen;

}

}

我有显示逆时我调用这个函数使用这个Android的代码:如何从美国时间获取反向时间的Android

btn_retry.setText(Functions.setLastSeenTime1("09/10/2014 8:41:26 AM"))

但问题是,我得到它位于服务器时间我们必须根据当地时间ZOne显示,以便我可以看到推出尊敬的时间,请建议我如何做我的错在哪里请帮助。

+1

它似乎是将世界协调时间设置为时区...所以你可以详细说明你正在寻找哪个时区。 –

2014-10-09 11:38:05

+0

UTC我想包括 –

2014-10-09 11:40:00

+0

转换时间Utc和手段设备时间和服务器时间的基础上,我们必须找到差异,我们必须显示在文本视图 –

2014-10-09 11:41:23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值