首页 > 编程知识 正文

java run(java怎么把字符串转换成数字)

时间:2023-05-03 21:46:00 阅读:77204 作者:4635

如何将当前时间millis转换为Java中的date?

服务器生成的一些日志文件的毫秒数,并且您知道从何处生成日志文件的区域设置。 我的问题是将毫秒转换为指定格式的date。 此日志的处理在位于不同时区的服务器上进行。 转换为“简单数据格式”的程序获取机器的数据。 这是因为这样的格式date不表示服务的正确时间。 有办法处理这种优雅吗?

longyourmilliseconds=1322018752992 l; //1322018752992-nov 22,20119336025336052 pmsimpledateformatsdf=newsimpledateformat (yyy-mm-ddhh 3360 mm 3360 ss聚合calendar.settimeinmillis (your milliseconds; system.out.println (' Gregorian calendar-' SDF.format (calendar.gettime ) ); datetimejodatime=new datetime (your milliseconds,datetimezone.fortimezone ) timezone.gettimezone ) ' us/central ' ) system.out.println(Jodatime ) parser1. print (joda time );

输出:

Gregorian calendar-2011-11-230833605336052,992 joda time 2011-11-2221336025336052,992

calendar calendar=calendar.getinstance (; calendar.settimeinmillis (timestamp ); intm year=calendar.get (calendar.year ); intm month=calendar.get (calendar.month ); int mday=calendar.get (calendar.day _ of _ month );

可以使用java.util.Date类并使用简单数据格式设置Date的格式。

datedate=newdate(millis );

如果毫秒值是自1970年1月1日GMT以来的毫秒数,JVM标准,则这与时区无关。 如果在特定时区中设置格式,则可以将其转换为GregorianCalendar对象以设置时区。 之后,有很多格式化的方法。

最简单的方法是使用Joda DateTime类,指定以毫秒为单位的时间戳和所需的DateTimeZone。

强烈建议避免内置的Javadate和日历类; 他们很害怕

其他答案使用过时或不准确的类。

请勿使用旧的date时间类,如java.util.Date/.Calendar。 他们对证书设备不好,困惑,麻烦。

java.time

java.time框架内置于Java 8或更高版本中。 许多函数反向移植到Java 6和7,并进一步适应安卓。 和Joda-Time一样的人做的。

即时是UTC时间线上的时间,分辨率为纳秒。 那个时代是1970年的第一个瞬间。

假设您的input数据是1970-01-01T00:00:00Z的毫秒数,我们可以轻松实例化Instant。

instant instant=instant.ofepochmilli (1_ 322 _ 018 _ 752 _ 992 l );

instant.tostring (:2011-11-23t 03:25:52.992 z

此标准ISO 8601格式的字符串的z是Zulu的缩写,表示UTC。

使用适当的时区名称应用时区以获取ZonedDateTime。

zoneid zoneid=zoneid.of (' Asia/Kolkata ' ); zoneddatetimezdt=zoned datetime.of instant (instant,zoneId );

我看到这段代码在IdeOne.com上运行。

Asia/Kolkata时区?

我觉得你的形象是时区影响了你的代码。 在这里,您可以看到调整到Asia/Kolkata时区的时间与报告的时间相同,为08:55,比UTC值03:25早了5个半小时。

2011-11-23T08:55:52.992 05:30 [亚/加尔各答]

默认区域

可以应用JVM的当前默认时区。 请注意,默认情况下,可以在运行时随时更改。 JVM中任何APP应用程序线程中的任何代码都可以更改当前默认值。 如果重要,请询问用户需要/预期的时区。

zoneid zoneid=zoneid.system default (; zoneddatetimezdt=zoned datetime.of instant (instant,zoneId );

我的解决方案

publicclasscalendarutils { publicstaticstringdateformat=' DD-mm-yyyy hh : mm '; 私有数据格式=newsimpledateformatsimpledateformat=newsimpledateformat; publicstaticstringconvertmillisecondstoformatteddate (string milliseconds (日历日历=calendar.getinstance ) ); calendar.settimeinmillis (long.parse long ) milliseconds ); returnsimpledateformat.format (calendar.gettime ); }

SimpleDateFormat类具有DateFormat类inheritance的名为settimezone(timezone )的方法。 3358 docs.Oracle.com/Java se/6/docs/API/Java/text/date format.html

最简单的方法:

私有millistodate (long millis ) return date format.getdate instance (date format.short ).format (millis ); //youcanusedateformat.longinsteadofshort }

我这样做:

静态数据格式(longdateinmillis ) datedate=newdate ) dateinmillis ); 返回日期格式. getdate instance ().format ) ) date; }

也可以使用getdateinstance(intstyle )和以下参数:

DateFormat.SHORT

DateFormat.MEDIUM

DateFormat.LONG

DateFormat.FULL

DateFormat.DEFAULT

以下是我的解决方案。 毫秒到date格式的date。 必须使用Joda Library运行此代码。

import Java.util.Gregorian calendar; import java.util.TimeZone; import org.joda.time.DateTime; importorg.joda.time.datetime zone; importorg.joda.time.format.datetime format; importorg.joda.time.format.datetime formatter; 公共类时间{ publicstaticvoidmain (string args [ ] (stringstr=' 1431601084000 ) ); longgetime=long.parselong(str; gregoriancalendarcalendar=newgregoriancalendar (time zone.gettime zone (' us/central ' ); calendar.settimeinmillis (ge time; datetimejodatime=new datetime (ge time,datetimezone.fortimezone ) time zone.gettime zone (' us/central ' ) datetimefefe system.out.println (gettime : ) parser1.print ) Jodatime ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。