有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用整数创建日期并显示在文本框中

我刚接触Android Studio,遇到了一个问题-我正在尝试执行一个计算,根据这个计算,我需要整数格式的当前日期和时间。我还需要当前日期和时间,然后显示在TextBox

我已将日期声明为整数,如下所示:

public static int date1 = (int) (new Date().getTime()/1000);


datedisplay = (TextView) findViewById(R.id.date);

然后我尝试在文本框中显示当前日期和时间,但它没有显示。我只是想知道为什么

   SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yy HH:mm");
   System.out.println(new Date(new Date(date1).getTime()));
   datedisplay.setText(dateFormat.format(date1));

先谢谢你


共 (4) 个答案

  1. # 1 楼答案

    在需要字符串或整数的任何数据类型中使用它

    java.util.Date date= new java.util.Date();
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(date.getTime());
    datedisplay.setText(timeStamp);
    
  2. # 2 楼答案

    如果您真的想使用int来存储日期表示,只需使用自历元起的天数而不是秒数

    new Date().getTime() 
        /1000 //second
        /60   //minute
        /60   //hour
        /24;   //day
    

    这将为您提供一个适合int相当长一段时间的值

    但是当然,你不能得到精确的精度,如果你想要DateTime部分,你就不能得到。这只允许您获得类似Dateyyyy-MM-dd

    private static final long EPOCH_DAY = 1000L * 60 * 60 * 24;
    public static void main(String[] args){
        int i = (int) (new Date().getTime()/EPOCH_DAY);
        System.out.println(new Date(i * EPOCH_DAY));
    

    }

    Fri Nov 03 01:00:00 CET 2017

    (时间是因为我所在的当地时间是格林尼治标准时间+1)

  3. # 3 楼答案

    new Date().getTime() ;如果按1000下潜,则返回长值

    to convert long to int

    如果您使用长时间:

        long date1 = new Date().getTime() ;
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yy HH:mm");
        Date dt = new Date(date1);
        datedisplay.setText(dateFormat.format(dt));
    
  4. # 4 楼答案

    您还可以使用日历类:

    Calendar myCalendar = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy HH:mm",Locale.getDefault());
    String dateString = sdf.format(myCalendar.getTime());
    

    然后

    datedisplay.setText(dateString);