如何将字符串时间戳更改为人类可读的日期格式? [复制]

     2023-05-07     206

关键词:

【中文标题】如何将字符串时间戳更改为人类可读的日期格式? [复制]【英文标题】:How to change string time stamp into Human readable date format? [duplicate] 【发布时间】:2017-07-19 10:09:21 【问题描述】:

我正在尝试将字符串时间戳转换为以下内容:

2 分钟前。 1 小时前。 4天前。 3个星期前。 5个月前。 1 年前。

我正在使用 Java 的 DateUtils.getRelativeTimeSpanString()method 进行转换,但它显示的日期类似于 2016 年 9 月 1 日。我希望它显示为 6 个月前。

代码如下:

long now = System.currentTimeMillis();
System.err.println();

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.ENGLISH);
Date startDate;

try 
    startDate = df.parse(userLogs.get(i).getDate());
    String sds = (String) DateUtils.getRelativeTimeSpanString(startDate.getTime(),System.currentTimeMillis(),DateUtils.MINUTE_IN_MILLIS);
    System.err.println(sds);
 catch (ParseException e) 
    e.printStackTrace();

更新:我不想使用 Joda time 或任何其他库,为什么它被标记为重复我不明白!

【问题讨论】:

考虑使用 JodaTime,see this previous answer 将来是startDate 吗? (不是过去) @Yazan 这么想,看看你评论旁边的时间,现在它会显示 44 秒前,稍后它会变成别的东西,我想要这样 我知道你的意思,我在问 9 是否出于任何原因)startDate 是在未来,--尚未到来--因为基于这个答案***.com/a/15216466/3604083 使用分钟作为分辨率将显示日期,您需要使用天数作为分辨率 @praneethkumar 如果解决了您的问题,请查看我的回答,然后请接受此回答。 【参考方案1】:

请尝试使用这个类

 long time = Long.valueOf(getDateFromDateTime("2016-09-01 15:57:20"));//2016-09-01 15:57:20 pass your date here

    String timeStr = TimeUtility.timeAgo(time/1000);

输出:一分钟前

public long getDateFromDateTime(String date) 
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
            Locale.US);
    Date new_date;
    long t = 0L;
    try 
        new_date = df.parse(date);
        t = new_date.getTime();
        return t;
     catch (ParseException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    
    return 0;



public class TimeUtility 

public static String timeAgo(long time_ago) 
    long cur_time = (Calendar.getInstance().getTimeInMillis()) / 1000;
    long time_elapsed = cur_time - time_ago;
    long seconds = time_elapsed;
    int minutes = Math.round(time_elapsed / 60);
    int hours = Math.round(time_elapsed / 3600);
    int days = Math.round(time_elapsed / 86400);
    int weeks = Math.round(time_elapsed / 604800);
    int months = Math.round(time_elapsed / 2600640);
    int years = Math.round(time_elapsed / 31207680);

    // Seconds
    if (seconds <= 60) 
        return "just now";
    
    //Minutes
    else if (minutes <= 60) 
        if (minutes == 1) 
            return "one minute ago";
         else 
            return minutes + " minutes ago";
        
    
    //Hours
    else if (hours <= 24) 
        if (hours == 1) 
            return "an hour ago";
         else 
            return hours + " hrs ago";
        
    
    //Days
    else if (days <= 7) 
        if (days == 1) 
            return "yesterday";
         else 
            return days + " days ago";
        
    
    //Weeks
    else if (weeks <= 4.3) 
        if (weeks == 1) 
            return "a week ago";
         else 
            return weeks + " weeks ago";
        
    
    //Months
    else if (months <= 12) 
        if (months == 1) 
            return "a month ago";
         else 
            return months + " months ago";
        
    
    //Years
    else 
        if (years == 1) 
            return "one year ago";
         else 
            return years + " years ago";
        
    

【讨论】:

每次都返回刚才 @praneethkumar 你能和我分享你的旧时间戳吗?所以我可以测试它。我确定你没有使用有效的时间戳,这就是你得到这个的原因。 @praneethkumar 请使用此网站确认您的时间戳epochconverter.com 2016-09-01 15:57:20 我把这个作为时间戳 @praneethkumar 首先将您的日期转换为时间戳。 2016-09-01 15:57:20 这不是有效的时间戳。时间戳应该是长值。

将人类可读的日期转换为纪元时间戳

】将人类可读的日期转换为纪元时间戳【英文标题】:ConvertHumanreadabledateintoanepochtimestamp【发布时间】:2012-11-1221:35:17【问题描述】:我正在处理一个C#项目,其中我有一个2012-11-2415:35:18格式的日期/时间,我需要将其转换为一个... 查看详情

如何以人类可读的格式输出(到日志)多级数组?

...时间都花在使用箭头键、回车键和制表键上,将1000多个字符串拆分为嵌套的可读格式。对于dru 查看详情

如何将此特定的 varchar 转换为人类可读的日期格式?

...有内容都视为一个简单的表格。现在我收到一个错误:从字符串转换日期和/或时间时转换失败怎么做 查看详情

如何将熊猫时间戳更改为 python 日期时间对象?

】如何将熊猫时间戳更改为python日期时间对象?【英文标题】:Howtochangepandastimestampstopythondatetimeobjects?【发布时间】:2019-09-1922:33:03【问题描述】:我正在寻找一种将pandas时间戳更改为python日期时间对象的方法,但我失败了。我... 查看详情

格式化日期对象以显示人类可读的日期

...英文标题】:Formattingadateobjecttodisplayahumanreadabledate【发布时间】:2012-08-0322:46:20【问题描述】:这是我想要展示的内容:May13,2012下面是显示的内容:2012-05-13我搜索了一些答案,然后找到了“FormattingDatesandFloatsinRuby”,其中提到... 查看详情

将人类可读的日期从 Epoch 转换为变量

...【英文标题】:GettinghumanreadabledatefromEpochintovariable【发布时间】:2012-06-1619:10:54【问题描述】:好的,这可能是一个非常基本的问题;但是,我刚刚回到Linux的马鞍上。我有一个变量,它保存一个称为pauseTime的Epoch时间。我需要... 查看详情

将日期从人类可读格式转换为纪元失败

...标题】:Conversionofdatefromhuman-readableformattoepochfails【发布时间】:2021-11-1104:36:55【问题描述】:我想创建一个程序,将特定人类可读格式的日期转换为纪元。到目前为止,我有以下代码,第一部分创建这种人类可读的格式,第二... 查看详情

如何以人类可读的格式显示 BigDecimal 值?

】如何以人类可读的格式显示BigDecimal值?【英文标题】:HowtodisplayBigDecimalvalueinahumanreadableformat?【发布时间】:2014-02-2404:59:17【问题描述】:假设我们有一个像这样设置的BigDecimal变量,我们不能改变它的创建方式:BigDecimalnum=new... 查看详情

如何以人类可读的方式格式化 CouchDB 设计文档?

】如何以人类可读的方式格式化CouchDB设计文档?【英文标题】:HowdoIformatCouchDBdesigndocumentsinahumanreadableway?【发布时间】:2013-09-0216:57:20【问题描述】:由于views是用JSON在CouchDB中定义的,我很难以人类可读的方式定义它们。收下... 查看详情

如何使用 sed 将纪元转换为人类可读的日期时间

】如何使用sed将纪元转换为人类可读的日期时间【英文标题】:Howtousesedtoconvertepochtohumanreadabledatetime【发布时间】:2021-06-2808:03:23【问题描述】:我尝试使用sed和/e选项调用date-d@将纪元转换为人类可读的日期时间,但似乎sed仅在... 查看详情

将 dict 保存为 JSON,以便它们是人类可读的 [重复]

...格式,就像这个网站一样-https://jsonformatter.curiousconcept.com如何在python中 查看详情

使用 Carbon 返回人类可读的日期时间差

】使用Carbon返回人类可读的日期时间差【英文标题】:UsingCarbontoreturnahumanreadabledatetimedifference【发布时间】:2013-06-2001:26:26【问题描述】:我正在使用Laravel4创建我的项目。我目前正在构建cmets部分,我想显示该帖子是多久之前... 查看详情

R - 如何将纬度和经度坐标转换为地址/人类可读的位置?

】R-如何将纬度和经度坐标转换为地址/人类可读的位置?【英文标题】:R-Howtoconvertlatitudeandlongitudecoordinatesintoanaddress/humanreadablelocation?【发布时间】:2015-04-2813:55:43【问题描述】:如何将纬度和经度坐标转换为R中的地址/人类可... 查看详情

将 JSON 纪元时间转换为本地人类可读日期

】将JSON纪元时间转换为本地人类可读日期【英文标题】:ConvertingJSONepochtimetolocalhumanreadabledate【发布时间】:2019-03-2617:51:12【问题描述】:我正在尝试获取在Zapier中提供给我的一些Stripe数据,并将其中两个纪元时间转换为人类可... 查看详情

如何以 json 格式(双引号)漂亮地打印(人类可读的打印)Python dict? [复制]

】如何以json格式(双引号)漂亮地打印(人类可读的打印)Pythondict?[复制]【英文标题】:Howtoprettyprint(humanreadablyprint)aPythondictinjsonformat(doublequotes)?[duplicate]【发布时间】:2016-07-0111:40:01【问题描述】:这是thisone的后续问题。我... 查看详情

C++ IP 地址人类可读的形式

.../C++中,您可以使用常规的gethostbyname()调用将带点的IP地址字符串(在localhost的情况下为“127.0.0.1”)转换为适合标准套接字调用的结构。现在你如何翻译回来?我知道我可以做一些位移来准确地获得我想要的位集并将它们打印出... 查看详情

如何使用 XSLT 将刻度转换为可读的日期时间?

】如何使用XSLT将刻度转换为可读的日期时间?【英文标题】:HowtoconvertticksintoareadabledatetimewithXSLT?【发布时间】:2010-10-1304:12:32【问题描述】:我有一个带有如下时间戳的XML:<nodestamp="1236888746689"/>我想在结果HTML中将它们显... 查看详情

如何将 DDMMMYYYY HH:mm:ss:ssssss 格式的时间戳更改为 spark sql 中的 yyyy-MM-dd 格式 [重复]

】如何将DDMMMYYYYHH:mm:ss:ssssss格式的时间戳更改为sparksql中的yyyy-MM-dd格式[重复]【英文标题】:HowtoChangeTimestampinDDMMMYYYYHH:mm:ss:ssssssformattoyyyy-MM-ddformatinsparksql[duplicate]【发布时间】:2021-08-0910:46:38【问题描述】:我有以下格式的时间... 查看详情