【问题标题】:convert date time in a specific format to timestamp android将特定格式的日期时间转换为时间戳android
【发布时间】:2019-10-18 06:53:33
【问题描述】:

我想以这种形式将两个日期(即...18-10-2019 01:05 pm)转换为时间戳,然后进行比较。我已经尝试过了,但它不起作用

public void getTimeStamp(){

  try{
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy K:mm aa");
    Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
    Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
    Log.d("***parsedDate",parsedDate.toString());
    Log.d("***timestamp",timestamp.toString());
  } catch(Exception e) {
       e.printStackTrace();
  } 

}

请帮帮我

【问题讨论】:

  • 这是什么问题?
  • 它以日期和时间格式显示时间戳,而不是应有的数字
  • 它将是长格式而不是时间戳,所以请相应地采取
  • 它甚至都不长。它是一个字符串
  • 类似这样的事情 2019-10-18 08:15:00.0

标签: android timestamp


【解决方案1】:

在您的代码中,您使用的是“MM-dd-yyyy K:mm aa”模式,这意味着第一个值是月份。但它的解析值,“18”是月份,它不是一个有效的月份。我认为您应该将模式更改为“dd-MM-yyyy K:mm aa”。

而且最好使用日历来获取时间戳:

try {
        SimpleDateFormat dateFormat = SimpleDateFormat("MM-dd-yyyy K:mm aa");
        Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
        Calendar cal = Calendar.getInstance();
        cal.setTime(parsedDate);
        long timestamp = cal.getTimeInMillis();
    } catch (Exception: e) {
        e.printStackTrace();
    }

【讨论】:

  • 即使在使用正确的值后它也无法正常工作。它以日期和时间格式显示时间戳,而不是应有的数字
  • 您可以使用Calendar.timeInMilis 获取日期的时间戳。检查我的更新以获取示例代码
  • .time 和 .timeInMillis 都是红色的
  • 您要导入哪个日历?你应该使用java.util.Calendar 而不是android.icu.util.Calendar
  • 我只使用 Java.Util.Calendar
【解决方案2】:

试试这个:

public void getTimeStamp(){

    try{

         DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy K:mm aa");
         DateFormat outputFormat = new SimpleDateFormat("MMM dd yyyy");
         Date parsedDate = inputFormat.parse("18-10-2019 01:05 pm");
         String outputDateStr = outputFormat.format(parsedDate);
         Log.d("***parsedDate",parsedDate.toString());
         Log.d("***timestamp",outputDateStr);

    } catch(Exception e) {
            e.printStackTrace();
    } 

 }

【讨论】:

    【解决方案3】:
    public void getTimeStamp(){
    
      try{
        SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy K:mm aa");
        Date parsedDate = dateFormat.parse("10-18-2019 01:05 pm");
        Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
        Log.d("***parsedDate",parsedDate.toString());
        Log.d("***timestamp",timestamp.toString());
      } catch(Exception e) {
           e.printStackTrace();
      } 
    
    
     Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
    
    
    Do not cast it to Timestamp take long
    
    Long timestamp = parsedDate.getTime();
    

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      相关资源
      最近更新 更多