如何在android中获得标准格式日期

时间:2014-04-18 12:45:33

标签: android sql date android-date

如果我尝试以下代码,例如:

我将日期设定为2014年7月25日星期五上午10:00。它以毫秒为单位给出日期1402080056000

现在,如果我尝试读取与以下相同的毫秒数

  long time = 1402080056000;

  Date mydate = new Date(time); 

mydate变量将日期显示为Sat Jun 25 00:10:56 IST 2014

  String DateTimeString = DateFormat.getDateTimeInstance().format(new Date(time));

使用DateTimeString中的上述语句,我的日期为Jun 25 , 2014 12:10:56 AM

如何阅读1402080056000 to Fri July 25 2014 10:00 AM

中的日期时间

4 个答案:

答案 0 :(得分:3)

只需要处理格式字符串

String dateTimeString= 
String.valueOf(new SimpleDateFormat("dd-MM-yyyy hh:mm").format(new Date(time)));  

明确设定时区:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
String result = String.valueOf(dateFormat.format(millis));  

此外,这将非常有用Regarding Timezones and Java

答案 1 :(得分:0)

尝试以下代码:

private String convertMilliToDate(long timestamp) {

        DateFormat formatter = new SimpleDateFormat("YOUR DATE FORMAT");

        // Create a calendar object that will convert the date and time value in
        // milliseconds to date.
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(time);
        return formatter.format(calendar.getTime());
    }

答案 2 :(得分:0)

试试这个:

String date= DateFormat.format("dd/MM/yyyy hh:mm:ss", new Date(date_in_milis)).toString();

答案 3 :(得分:0)

使用适用于Android的Joda-Time库,可以更轻松地完成日期工作。

long millis = 1402080056000L;

DateTimeZone timeZoneIndia = DateTimeZone.forID( "Asia/Kolkata" );
DateTime dateTimeIndia = new DateTime( millis, timeZoneIndia );

DateTime dateTimeFrance = dateTimeIndia.withZone( DateTimeZone.forID( "Europe/Paris" ) );

DateTime dateTimeUtc = dateTimeIndia.withZone( DateTimeZone.UTC );

要将字符串解析为日期时间,请搜索StackOverflow以进行" Joda解析"找到很多例子。