Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用PHP datetime字符串在Android中获取运行时间_Java_Php_Android_Datetime - Fatal编程技术网

Java 如何使用PHP datetime字符串在Android中获取运行时间

Java 如何使用PHP datetime字符串在Android中获取运行时间,java,php,android,datetime,Java,Php,Android,Datetime,我有一个PHP web服务将JSON响应发送回我的Java客户端。时间以JSON格式返回,如下所示: created_at: "2018-04-02 20:06:42" String input = "2018-04-02 20:06:42"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // use the timezone name. Example: "UTC", "America/New_Yor

我有一个PHP web服务将JSON响应发送回我的Java客户端。时间以JSON格式返回,如下所示:

created_at: "2018-04-02 20:06:42"
String input = "2018-04-02 20:06:42";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// use the timezone name. Example: "UTC", "America/New_York", "Europe/Berlin", etc
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date = sdf.parse(input);
// difference in milliseconds
long diffFromNow = System.currentTimeMillis() - date.getTime();

我在Android应用程序中以字符串的形式获取datetime,因此我想基于此字符串显示Android应用程序上经过的时间。我尝试了很多方法,比如把它转换成长的、双重的、日期对象,但都不适合我。那么,将其转换为java对象的正确方法是什么呢?我可以挖掘当前时间来获取自记录日期以来经过的时间?

您的输入表示本地日期/时间(
2018-04-02 20:06:42
),要获取经过的时间,您需要定义要使用的时区

输入对应于2018年4月2日晚上8:06:42,但在哪里?请注意,在世界不同的地方,晚上8点发生在不同的时刻,这取决于你所在的时区。如果不知道输入所指的确切时区,就不可能将其与“现在”进行比较

如果您有办法找出与输入相对应的时区,则可以开始执行以下操作:

created_at: "2018-04-02 20:06:42"
String input = "2018-04-02 20:06:42";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// use the timezone name. Example: "UTC", "America/New_York", "Europe/Berlin", etc
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date = sdf.parse(input);
// difference in milliseconds
long diffFromNow = System.currentTimeMillis() - date.getTime();
另一种选择(更好的一种,IMO)是使用(对于API级别26),或者(对于API级别<26-如何在Android中配置):