【问题标题】:Get correct local time in java (Calendar)在java(日历)中获取正确的本地时间
【发布时间】:2015-08-11 03:50:48
【问题描述】:

我用这个方法来获取当地时间:

 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 ..etc 到 23:MM。 . .

我应该改变什么?

【问题讨论】:

标签: java android-calendar


【解决方案1】:
  1. 您确定 PC 上的时间或您用于编程的任何设备上的时间是正确的吗?

  2. 尝试使用公历:

    new GregorianCalendar().getTime()
    
  3. 确保您有这些导入:

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

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    你可以试试这样的:

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

    输出示例:

    2013.03.05 22:07

    【讨论】:

    • 嗯。这似乎与 OP 已经在做的一样。
    • @Barett 不是真的.. 再看看。
    • 如果您避免说日期的构造是问题(第二次),那么在您的回答中提及这一点会很有帮助。不知道为什么所有含蓄的语言;这不是苏格拉底溢出。 OP 很困惑,因为他认为格式是问题所在。除了标点符号之外,您的格式完全相同。
    • @Barett 我同意,这不是苏格拉底溢出。但你很幸运,看到这个philosophy.stackexchange.com
    【解决方案3】:

    我猜你把时区搞混了。使用系统的默认语言环境获取日历:

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

    【讨论】:

    • 我试试这个,但我必须等下午。如果可以,我会接受你的回答
    • @AdamVarhegyi 您可以简单地更改时间并立即查看 :)
    【解决方案4】:

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

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

    【讨论】:

    • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
    • @shekharsuman 我不同意。虽然不正确,但这是一个完全有效的简短答案。
    • Mike,HH 应该返回 0-23 之间的值,这正是 OP 想要的。 kk 返回值 1-24。每docs.oracle.com/javase/7/docs/api/java/text/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多