我正在努力使用EnumSet,因为它令人惊讶地没有一个简单的构造函数,并且它的方法不喜欢null值.
我想出了什么:
EnumSet<MyClass> x = EnumSet.copyOf(Collections.<MyClass>emptySet());
这有点有效,但对我来说似乎不对.
PHP date("H:i (d.m.Y)",$timestamp)函数表示当天午夜的00:00.但我需要它代表它作为前一天的24:00.是否可以在不编写全新的date()解析器函数的情况下完成?
编辑:为什么我需要这种"怪异"的格式?因为我的客户要求它.在我的国家(CZ),有时会在提到午夜的时候使用24:00.
edit2:我当前的'脏'解决方案是:(不适用于所有可能的格式字符串)
function date_24midnight($format,$ts)
{
if(date("Hi",$ts)=="0000")
return preg_replace('/23:59/',"24:00",date($format,$ts-1));
else
return date($format,$ts);
}
Run Code Online (Sandbox Code Playgroud) 解决的问题外部设备正在计算并发送非标准的2小时轮班时间戳,这使我非常困惑,并启动了该线程。时区不影响自己的时间戳,时区仅在以人类可读形式进行转换时适用。
我在UTC时区有时间戳记(距离unix纪元的秒数),没有DST(夏令时)。
我想要使用DST的“欧洲/布拉格”时区中的时间戳(距Unix纪元的秒数)。
我曾经以为unix时间戳不受时区限制,时区仅影响将时间戳转换为人类可读格式的过程。但这不是那样。而且,我尝试转换的次数越多(使用Calendar和TimeZone类),我就会变得越来越困惑和迷茫。
此代码无法正常工作:
Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTimeInMillis(ts*1000);
cal.setTimeZone(TimeZone.getTimeZone("Europe/Prague"));
return cal.getTimeInMillis()/1000;
Run Code Online (Sandbox Code Playgroud)