获取正确的java本地时间(日历)

获取正确的java本地时间(日历),java,android-calendar,Java,Android Calendar,我使用此方法获取本地时间: Calendar cal = Calendar.getInstance(); String time= new SimpleDateFormat("dd MMM yyyy HH:mm:ss").format(cal.getTime()); 我的问题是,下午这个方法返回给我,例如“11:15”,但它已经是“23:15”。 我希望我的描述不会令人困惑 我想返回下午的值,比如:12:MM,13:MM,14:MM..等等到23:MM 我应该换什么 我猜你把时区搞混了。使

我使用此方法获取本地时间:

 Calendar cal = Calendar.getInstance();

String time= new SimpleDateFormat("dd MMM yyyy HH:mm:ss").format(cal.getTime());
我的问题是,下午这个方法返回给我,例如“11:15”,但它已经是“23:15”。 我希望我的描述不会令人困惑

我想返回下午的值,比如:12:MM,13:MM,14:MM..等等到23:MM


我应该换什么

我猜你把时区搞混了。使用系统的默认区域设置获取日历:

Calendar cal = Calendar.getInstance(Locale.getDefault());

您可以尝试类似的方法:

Date date=new Date();    
System.out.println(new SimpleDateFormat("yyyy.MM.dd  HH:mm").format(date));
输出示例:

2013.03.05 22:07

  • 你确定电脑上的时间或你用来编程的任何东西都是正确的吗

  • 尝试使用公历:

    new GregorianCalendar().getTime()
    
  • 确保您有以下导入:

    import java.util.Date;
    import java.util.GregorianCalendar;
    

  • 希望有帮助。

    您正在使用
    HH
    标志。尝试改用
    kk
    标志


    例如,
    kk:mm
    而不是
    HH:mm

    我尝试了这个,但我必须等到下午。如果你的回答是正确的,我会接受OK@AdamVarhegyi您只需更改时间并立即检查即可:)一些相关阅读材料:似乎您使用了正确的标志来表示0-23之间的小时值。请参阅此处了解更多信息:您的问题是否可能存在于代码的底层?时间是如何使用的?这并不能回答这个问题。要评论或要求作者澄清,请在他们的帖子下方留下评论——你可以随时在自己的帖子上发表评论,一旦你有足够的评论,你就可以发表评论了。@shekharsuman我不同意。虽然不正确,但这是一个非常有效的简短回答。Mike,
    HH
    应该返回0-23之间的值,这是OP想要的<代码>kk返回值1-24。嗯,这似乎和OP已经在做的事情一样。@Barett不太可能。。再看一看,如果你避免说日期的构造是问题所在(这是第二次),那么在你的回答中提到这一点会很有帮助。不知道为什么所有含蓄的语言;这不是苏格拉底式的泛滥。OP感到困惑,因为他认为格式是问题所在。除了标点符号,你们的格式完全一样。@Barett我同意,这不是苏格拉底式的溢出。但你很幸运,看到这个了吗