从时间戳获取日期和时间(Android)

17
我想要从时间戳中分别获取时间和日期。请帮我处理一下。我的时间戳示例是1378798459。
谢谢。

你尝试过这个吗:http://developer.android.com/reference/java/text/SimpleDateFormat.html - Aleksander Lidtke
13个回答

39

//尝试以下操作

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dateString = formatter.format(new Date(Long.parseLong(YOUR TIMESTAMP VALUE)));
txtDate.setText(dateString);    

//您可以在此处放置所需的格式:

SimpleDateFormat formatter = new SimpleDateFormat("您需要的格式");


有关各种日期格式,请参见此处 https://dev59.com/2GMl5IYBdhLWcg3wDzZG#55645964 - DragonFire
1
将时间戳乘以1000以得到正确的结果。'''SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); String dateString = formatter.format(new Date(Long.parseLong(YOUR TIMESTAMP VALUE)*1000)); txtDate.setText(dateString);''' - Jithin Angel'z Jas'z

20

试试这个方法,它对我有用

public  String getDateCurrentTimeZone(long timestamp) {
        try{
            Calendar calendar = Calendar.getInstance();
            TimeZone tz = TimeZone.getDefault();
            calendar.setTimeInMillis(timestamp * 1000);
            calendar.add(Calendar.MILLISECOND, tz.getOffset(calendar.getTimeInMillis()));
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date currenTimeZone = (Date) calendar.getTime();
            return sdf.format(currenTimeZone);
        }catch (Exception e) {
        }
        return "";
    }

有关不同日期格式,请参见此处 https://dev59.com/2GMl5IYBdhLWcg3wDzZG#55645964 - DragonFire

13

在Pratik Dasa的回答基础上进行改进

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

在这里,您可以使用以下语法获取各种格式。您可以通过删除或添加下面语法中给出的术语来进行操作。

Date and Time Pattern                Result
-----------------------------        ---------------------------------
"yyyy.MM.dd G 'at' HH:mm:ss z"       2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"                   Wed, Jul 4, '01
"h:mm a"                             12:08 PM
"hh 'o''clock' a, zzzz"              12 o'clock PM, Pacific Daylight Time
"K:mm a, z"                          0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"       02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"         Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"                      010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"         2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"       2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u"                       2001-W27-3

7
String time = DateUtils.formatDateTime(this, 1378798459, DateUtils.FORMAT_SHOW_TIME);
String date =  DateUtils.formatDateTime(this, 1378798459, DateUtils.FORMAT_SHOW_DATE);

3

试试这个:

final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
Date date = cal.getTime();
mHour = date.getHours();
mMinute = date.getMinutes();

1
date.getHours()date.getMinutes()现在已经被弃用了。:( - Chintan Rathod

2
只是这样:
long timestampString =  Long.parseLong("yourString");
String value = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").
    format(new java.util.Date(timestampString * 1000));

0

你可以使用这个

    Long tsLong = System.currentTimeMillis();
    String ts = tsLong.toString();

    long millisecond = Long.parseLong(ts);
    datetimeString = DateFormat.format("MM-dd-yyyy hh:mm:ss a", new Date(millisecond)).toString();
    timeString = datetimeString.substring(11);
    dateString = datetimeString.substring(0,10);
    String t2 = datetimeString.substring(20,21);

datetimeString 包含日期时间 AM/PM 数据 timeString 将给出仅包含时间的子字符串,dateString 是日期的子字符串 字符串 t2 将告诉您时钟是上午还是下午


0
int day, month, year;
                int second, minute, hour;
                GregorianCalendar date = new GregorianCalendar();

                day = date.get(Calendar.DAY_OF_MONTH);
                month = date.get(Calendar.MONTH);
                year = date.get(Calendar.YEAR);

                second = date.get(Calendar.SECOND);
                minute = date.get(Calendar.MINUTE);
                hour = date.get(Calendar.HOUR);

               String   data  =(hour+ ':'+  ""+minute+ ':'+"" +second+"" +""+"" +day+"" +"/" +(month+1)+"" +"/"+ +year);



Toast.makeText(getActivity(), "Time stamp:"+data,Toast.LENGTH_LONG).show();

0

从时间戳中获取日期和日子的最佳方法是:

java.util.Date dayAndDate = new java.util.Date( (long) yourTimeStamp * 1000);

// 对象格式为:Tue Feb 09

String day = dayAndDate.toString().split(" ")[0];

String month = dayAndDate.toString().split(" ")[1];

String date = dayAndDate.toString().split(" ")[2];

希望您会喜欢我的方法,如果您喜欢它,请不要忘记点赞,这样其他人也会考虑使用。


这可能是最糟糕的方式。请考虑使用以下答案:https://dev59.com/2GMl5IYBdhLWcg3wDzZG#64382147 - lsrom

0
DateFormat dateFormat = DateFormat.getDateTimeInstance();

when.setText(dateFormat.format(new Date(timestamp * 1000)));

时间戳乘以1000,将秒转换为毫秒。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接