java怎么判断是不是为时间戳

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么判断是不是为时间戳相关的知识,希望对你有一定的参考价值。

我从前台传了一个字符串过来,它可能是2014-04-22 00:00:00,也可能是时间戳,因为时间戳不能再次转换成时间戳,所以会报错,我要怎么判断它传过来的是否是时间戳还是普通时间格式

参考技术A 时间戳分2种
1.
java的时间戳,是long类型的,长度是13位,做判断的时候,先判断类型,再判断长度,之后再转成时间类型,如果都成功,证明这是一个时间戳
2.
数据库时间戳,这个java直接读取数据库,读取出来就是标准的时间戳类型
参考技术B 你想将它转换成时间后干嘛?
直接try
将字符串转换,成功的话就执行转换时间后的代码
catch
失败的话捕获异常说明该字符串就是时间戳不能转换,然后再执行为时间戳需要执行的代码
参考技术C 时间戳是指从1970年1月1日到现在的时间.通常为秒或者毫秒.
理论上任何一个int或者long都能解析成为一个时间.
如果一定要检测,则需要给定一个条件,比如从什么时候,到什么时候.可以比对判断.
参考技术D calendar
c_yestaday
=
calendar.getinstance();
c_yestaday=昨天的时间
int
aa=c_yestaday.add(c_yestaday
.day_of_year,
1);//昨天的天数加1
calendar
c_today=
calendar.getinstance();
c_today=jin天的时间
int
bb=c_today.day_of_week//今天的天数
最后判断aa和bb是否相等

如何在 Java 中将“HH:MM”格式字符串转换为时间戳?

【中文标题】如何在 Java 中将“HH:MM”格式字符串转换为时间戳?【英文标题】:How do I convert "HH:MM" format string to Timestamp in Java? 【发布时间】:2017-03-20 10:50:27 【问题描述】:

我有一个字符串09:28.,我想将此字符串转换为Timestamp 对象。

下面是我的代码:

Object d = getMappedObjectValue(reportBeamDataMap, ReportBeamConstant.DAT_STOPDATE);
Date stopDate1 = (Date)d;
SimpleDateFormat printFormat = new SimpleDateFormat("hh:mm");
String timeString = printFormat.format(stopDate1);

现在我想在String 上方作为Timestamp(仅 HH:MM)。该怎么做?

【问题讨论】:

为什么不将stopDate1 转换为TimeStamp 而不是timeString 因为 stopDate1 也有日期和其他时间数据。我只想要 HH:MM。所以我先把它们串起来。但没关系,对象 d1 = getMappedObjectValue(reportBeamDataMap, ReportBeamConstant.DAT_STOPDATE);日期 stopDate12 = (日期)d1; SimpleDateFormat printFormat1 = new SimpleDateFormat("hh:mm");字符串 timeString1 = printFormat.format(stopDate1);时间戳 tm1 = new Timestamp(printFormat1.parse(timeString1).getTime());这工作得很好。谢谢 【参考方案1】:

如果您正在寻找今天 hh:mm 的时间戳,那么试试这个

static String todaysFtoTimestamp(String f)
    long todaystimestamp = ((System.currentTimeMillis() / 86400000 )  * 86400 );
    //System.out.println("today: " + todaystimestamp);
    long todaysftimestamp = Integer.parseInt(fToTimestamp(f)) + todaystimestamp;
    //System.out.println("todayF: " + todaysftimestamp);
    return todaysftimestamp+"";

static String fToTimestamp(String f)
    String[] fArray = f.split(":");
    String r = "null hehe";
    int hours = Integer.parseInt(fArray[0]);
    int minutes = Integer.parseInt(fArray[1]);
    r = String.valueOf((minutes + (hours * 60))*60);
    return r ;

【讨论】:

【参考方案2】:

您可以使用 LocalTime 来存储时间(来自字符串,反之亦然),如下所示:

选项(1):使用 Java8

这个可以使用Java8的LocalTime API,可以看here

String timeString = printFormat.format(stopDate1);
//Get your localTime object from timeString
LocalTime localTime = LocalTime.parse(timeString);

static LocalTime parse(CharSequence text) 获取一个实例 LocalTime 来自文本字符串,例如 10:15。

选项(2):不使用 Java8

需要用到jodatime库API,可以看here

【讨论】:

【参考方案3】:

请使用 parse 方法获取 Date 对象,然后构造 Timestamp 对象。

 try 
    Timestamp timestamp = new Timestamp(printFormat.parse(timeString).getTime());
     catch (ParseException e) 
        e.printStackTrace();
    

【讨论】:

【参考方案4】:

时间戳格式必须为 yyyy-mm-dd hh:mm:ss[.fffffffff]

您可以直接将日期对象转换为时间戳

 Timestamp timestamp = new Timestamp(stopDate1.getTime());

【讨论】:

以上是关于java怎么判断是不是为时间戳的主要内容,如果未能解决你的问题,请参考以下文章

php怎么将指定日期转换为时间戳?

php怎么将指定日期转换为时间戳

php 怎么将指定日期转换为时间戳

Hive/SparkSQL:如何将 Unix 时间戳转换为时间戳(不是字符串)?

s 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

php取出mysql表单数据为时间戳,怎么转换成时间格式