当前位置: 首页 > 知识库问答 >
问题:

设置REST API不工作时服务器响应的日期格式

段干兴业
2023-03-14
private String formatDate(String dateString) {
    try {
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS" );
        Date d = sd.parse(dateString);
        sd = new SimpleDateFormat("dd/MM/yyyy");
        return sd.format(d);
    } catch (ParseException e) {
    }
    return "";
}
public void getProfile() {

    Retrofit retrofit = RetrofitClient.getClient(authUser.getToken());
    APIService mAPIService = retrofit.create(APIService.class);

    mAPIService.getProfile("Bearer " + authUser.getToken()).enqueue(new Callback<Profile>() {
        @Override
        public void onResponse(Response<Profile> response, Retrofit retrofit) {
            if(response.isSuccess()) {
                try {
                    String loginSuccess = response.body().getSuccess();
                    if (loginSuccess.equals("true")) {
                        id_name.setText(response.body().getData().getName());
                        id_email.setText(response.body().getData().getEmail());
                        phone_input_layout.setText(response.body().getData().getPhoneNumber());
                        id_gender.setText(response.body().getData().getGender());
                        String dateOfBirth = response.body().getData().getDateOfBirth();
                        id_date_of_birth.setText(formatDate(dateOfBirth));
                        //updateLabel(dateOfBirth);
                        id_residential_address.setText(response.body().getData().getResidentialAddress());
                        if (response.body().getData().getEmploymentStatus().equals("Student")) {
                            id_nss_number.setVisibility(View.VISIBLE);
                            maximum_layout.setVisibility(View.INVISIBLE);
                            extended_layout.setVisibility(View.INVISIBLE);
                        } else if (response.body().getData().getEmploymentStatus().equals("Employed")) {
                            maximum_layout.setVisibility(View.VISIBLE);
                            extended_layout.setVisibility(View.INVISIBLE);
                            id_nss_number.setVisibility(View.INVISIBLE);
                            id_type.setText(response.body().getData().getIdType());
                            id_number.setText(response.body().getData().getIdNumber());
                            id_expiry_date.setText(response.body().getData().getIdExpiryDate());
                        }


                    } else {
                        String message = response.body().getMessage();
                        Log.e("getProfileError", message);
                        Toast.makeText(UserProfileActivity.this, message, Toast.LENGTH_LONG).show();
                    }
                }catch (Exception e){
                    Toast.makeText(getApplicationContext(), "Some fields are empty", Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                }

            }


        }

        @Override
        public void onFailure(Throwable throwable) {
            Log.e("getProfileError", throwable.getMessage());
            Toast.makeText(UserProfileActivity.this, "Unable to Login, Please Try Again", Toast.LENGTH_LONG).show();
        }
    });
}

这是我从日期格式得到的例外情况

I/dateError:: Unparseable date: "1988-11-09T00:00:00Z"

共有1个答案

李振国
2023-03-14

您所需的格式

yyyy-MM-dd'T'HH:mm:ss.SSS'Z' 

最后一个Z代表“零时偏移”也称为“祖鲁时间”(UTC)。

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));

使用此UTC时区,转换后的小时将为20h

 类似资料:
  • 问题内容: 调用a 并获取列的响应将日期值设置为 但。目前,我有一个类似的日期值。我想将此值转换为Edm.DateTIme格式,如上所示。 任何功能都可以实现相同。任何工作。请帮忙。 问题答案: 下列: 打印出: 请注意时区的转换。Java 希望在偏移量中使用冒号。 说到时区,我不知道OData Atom XML是否在某处指定了时区。Edm.DataTime没有此类功能。 编辑 :如果要将输出转换

  • 我正在处理一个在现有数据库上运行的项目。问题在于,在SQL Server中插入日期时间列时使用了错误的格式。服务器使用datetime作为Y-m-d,数据保存为Y-d-m。 我做了一些测试,当保存到MariaDB日期时间保存正确。 有更新的和创建的自定义字段,因此它们在模型上声明。 在模型中 这是保存数据后的QueryLog打印。正如您在查询日志中所看到的,datetime格式被正确解析为SQL

  • 我使用react datepicker让用户选择一个日期。然而,现在它使用本地时间(PDT),但我想将其硬编码为使用特定时区(PST)。 我尝试使用prop,但它似乎没有任何作用。有人知道如何做到这一点吗?

  • 我们知道,使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上,那么这么做有什么意义吗? 假设我需要管理几十台服务器,那么我每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看日志非常烦琐,我可以把几十台服务器的日志集中到一台日志服务器上吗?这样我每天只要登录这台日志服务器,就可以查看所有服务器的日志,要方便得多。 如何实现日志服务器的功能呢?其实并不难,不

  • 但如何在指定时区设置日期的格式? 无论浏览器的当前时间如何,我都希望得到一致的结果,但我不希望以UTC显示日期。

  • 我试图在表中使用日期选取器添加和删除行。默认情况下,日期选取器不起作用。但是我点击了添加行按钮,它已经工作了。我找不到解决方案。 请参考小提琴位置。