【问题标题】:Convert string to date in android the best way在android中将字符串转换为日期的最佳方式
【发布时间】:2015-11-21 03:47:06
【问题描述】:

最好的方法是什么以及如何将此字符串 "2015-07-18T13:32:56.971-0400" 转换为日期并转换为用户手机的本地时区在安卓?

【问题讨论】:

标签: java android string datetime


【解决方案1】:

我列出了 duplicate 链接,因为您在询问如何解析日期字符串。答案已经无数次了。

另一个链接显示用户手机在android中的本地时区 JVM的默认时区,所以你不必进行任何转换。 p>

要亲自查看,请在任何 JVM 中运行以下代码(Android、PC、Mac、Linux,...):

String input = "2015-07-18T13:32:56.971-0400";

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse(input);
String output = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss.SSS a").format(date);
System.out.println(input + "  ->  " + output);

如果你在美国加利福尼亚州洛杉矶,你会得到这个:

2015-07-18T13:32:56.971-0400  ->  07/18/2015 10:32:56.971 AM

请注意,13:32 已调整为上午 10:32(10:32)。

【讨论】:

  • 谢谢你这是我要求的:)
【解决方案2】:

只需使用这些来获取时间和日期

public String getCurrentDate(){
    Time dtNow = new Time();
    dtNow.setToNow();
    return dtNow.format("%Y.%m.%d %H:%M");    // YYYYMMDDTHHMMSS
}

public String getCurrentTime(){
    Time dtNow = new Time();
    dtNow.setToNow();
    return dtNow.format("%H:%M");    // YYYYMMDDTHHMMSS
}

第一个函数返回时间,第二个函数返回日期

【讨论】:

  • 它基本上得到了你真正想要得到的时间和日期。
猜你喜欢
  • 2017-03-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多