【问题标题】:convert string to date and time as am/pm format [duplicate]将字符串转换为上午/下午格式的日期和时间[重复]
【发布时间】:2014-07-08 04:56:25
【问题描述】:
 string : 2014-04-25 17:03:13

使用 SimpleDateFormat 格式化就够了? 要么 否则我会转向任何新的 API?

Date date = new Date(string);
DateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd");
out.println( dateFormat.format (date));

我的预期结果是(印度区):

Date : 25-04-2014
Time : 05:03 PM

【问题讨论】:

  • 您至少需要两个 SimpleDateFormat 对象 - 一个用于解析初始字符串,一个(或可能两个)用于格式化结果。
  • 有两种日期格式...一种用于时间,另一种用于日期。或者扩展 simpledateformat 并添加您的方法。

标签: java datetime timestamp


【解决方案1】:

请记住 Date 对象没有固有格式,您需要两个 DateFormat 对象来产生您寻求的结果 - 一个用于解析,另一个用于格式化:

String input = "2014-04-25 17:03:13";
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat outputFormat = new SimpleDateFormat("'Date : 'dd-MM-yyyy\n'Time : 'KK:mm a");
System.out.println(outputFormat.format(inputFormat.parse(input)));

输出:

Date : 25-04-2014
Time : 05:03 PM

注意格式中引用序列的使用,例如"'Date : '",它在格式模式中被视为文字。

【讨论】:

  • 实际上该字符串来自mysql数据库作为日期时间数据类型:rs.getDate("column");你能告诉我如何处理吗?
  • getDate() 返回一个java.sql.Date,它的时间部分设置为00:00:00。而是使用getTimestamp(),像这样:outputFormat.format(rs.getTimestamp("column"))
  • java.sql.Time 类对象可以以 am/pm 格式存储时间。如果是怎么办?
  • @Shuddh 没有 Java 类日期对象存储任何格式信息;它们都只代表一个瞬间(通常是一个纪元毫秒的long)。格式化是通过 Format 对象完成的,尽管它们有一个默认格式(所以他们的 toString() 有效,但是 a)这是在类级别(而不是实例级别)完成的,并且 b)你无论如何都不能改变它。
【解决方案2】:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a");

您可以找到更多模式here

【讨论】:

    【解决方案3】:

    试试下面给出的示例代码:

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = new Date();
    System.out.println(dateFormat.format(date)); 
    //Output: 2013-05-20 10:16:44
    

    有关数据和时间的更多功能,请尝试Joda-Time API

    【讨论】:

      【解决方案4】:

      我自定义了onTimeSet() 函数。将hourminutes 发送给它。它将以format am and pm返回时间

      public static String onTimeSet( int hour, int minute) {
      
          Calendar mCalen = Calendar.getInstance();;
             mCalen.set(Calendar.HOUR_OF_DAY, hour);
             mCalen.set(Calendar.MINUTE, minute);
      
             int hour12format_local = mCalen.get(Calendar.HOUR);
             int hourOfDay_local = mCalen.get(Calendar.HOUR_OF_DAY);
             int minute_local = mCalen.get(Calendar.MINUTE);
             int ampm = mCalen.get(Calendar.AM_PM);
             String minute1;
             if(minute_local<10){
      
              minute1="0"+minute_local;
             }
             else
                minute1=""+minute_local;
      
             String ampmStr = (ampm == 0) ? "AM" : "PM";
             // Set the Time String in Button
      
             if(hour12format_local==0)
              hour12format_local=12;
      
      
      
      String selecteTime=hour12format_local+":"+ minute1+" "+ampmStr;
      
      retrun selecteTime;
      
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-22
        • 2012-01-10
        • 1970-01-01
        • 1970-01-01
        • 2020-06-30
        • 1970-01-01
        • 2018-07-10
        • 1970-01-01
        相关资源
        最近更新 更多