首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleDateFormat仅获取时间

SimpleDateFormat仅获取时间
EN

Stack Overflow用户
提问于 2012-04-20 05:14:16
回答 3查看 11.3K关注 0票数 3

当我试图从时间戳中仅获取时间时,我遇到了一个问题。

时间戳的一个例子是:

2012-04-19T23:05:00+0200

我想格式是“yyyy-mm-dd‘T’the :mm:ss.SSSZ”,对吗?而且必须是"HH:mm“。

我使用以下代码,但它不返回任何内容:

代码语言:javascript
复制
public String getTime(String Vertrektijd){
        final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        Date dateObj;
        String newDateStr = null;
        try
        {
            dateObj = df.parse(Vertrektijd);
            SimpleDateFormat fd = new SimpleDateFormat("HH:mm");
            newDateStr = fd.format(dateObj);
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }
        return newDateStr;
    }

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-20 06:31:57

你的代码是正确的。

在示例时间中,您在问题中给出的时间(即"2012-04-19T23:05:00+0200")缺少MilliSeconds

试着传递这个

代码语言:javascript
复制
getTime("2012-04-19T23:05:00.235+0200");

应该能行得通。

编辑:正如MH提到的,如果您不想使用毫秒,可以将代码更改为

代码语言:javascript
复制
final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
票数 6
EN

Stack Overflow用户

发布于 2012-04-20 05:28:25

Date有一个getHours()和getMinutes()函数,但它已被弃用。正确的方法应该是使用Calendar

代码语言:javascript
复制
Calendar calendar = Calendar.getInstance();
calendar.setTime( dateObj );
int hours = calendar.get( Calendar.HOUR_OF_DAY );
int minutes = calendar.get( Calendar.MINUTE );
票数 0
EN

Stack Overflow用户

发布于 2012-04-22 17:43:33

Here试图总结出Java和Android提供的所有与日期、时间和时区相关的令人困惑的类。基本上,大多数日期/时间操作都是使用GregorianCalendar对象完成的,可能使用Calendar超类中的方法。要进行特定于区域设置的格式化,您需要一个DateFormat。但是这只能格式化Date对象,所以您需要首先将Calendar/GregorianCalendar转换为其中之一。正如您已经发现的,SimpleDateFormat基本上是用于进行自定义格式化的。

请注意,有两个不同的类,称为“DateFormat”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10236876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档