我已经编写了这个方法来将unix时间转换为日历对象:
/**
* Converts Unix time to Calendar instance.
*/
public static Calendar unixToCalendar(long unixTime){
Calendar calendar = new GregorianCalendar(1970/*Year*/, GregorianCalendar.JANUARY/*0*/, 1 /*Day*/, 00, 0);
calendar.add(Calendar.MINUTE, (int) (unixTime/60/* Sec to Min */));
return calendar;
}
Run Code Online (Sandbox Code Playgroud)
问题是,对于更大的输入值,我会在实时到结果之间得到恰好一小时的差异.
差异从796000000值之间开始......
例如,直到796000000我们得到相同的结果(匹配现实),但是对于797000000及以上,我们得到一小时的差异(我的代码在一小时前进).
如果我使用:
calendar.setTimeInMillis(unixTime*1000);
我从现实中得到了同样的问题,只有3-2小时的差异(相同的值).
我使用了一些在线网站来检查自己,我正在寻找GMT 0的结果 .http ://www.epochconverter.com/ http://www.onlineconversion.com/unix_time.htm
谢谢
PHP intl可以将公历日期转换为其他日历类型.
例如Gregorian到Hijri,2017/04/11to1396/01/22
或者我们必须使用外部库来转换日期?
转换为POSIXct时会发生非常奇怪的事情:
> as.POSIXct("2008-03-30 02:00:00",format="%Y-%m-%d %H:%M:%S")
[1] NA
Run Code Online (Sandbox Code Playgroud)
但:
> as.POSIXct("2008-02-28 02:00:00",format="%Y-%m-%d %H:%M:%S")
[1] "2008-02-28 02:00:00 CET"
Run Code Online (Sandbox Code Playgroud)
我很无能为力.这是R中的一个错误吗?它可能与我的德国(柏林)地区有关吗?我正在使用R 2.14.2 for windows.
问题:我想将datetimeSQL Server 转换为 Excel 日期时间格式。
示例 1:从2018-08-23 15:32:32.000到43335,65
示例 2:从1985-03-26 10:35:42.000到31132,44
我尝试过的:受这个答案的启发,我尝试了这个查询
SELECT DATEDIFF(day, @MyDatetime, GETDATE())
Run Code Online (Sandbox Code Playgroud)
如果你想转换日期(不带小时),那么它可以工作,但是如何转换时间呢?
在Excel中,时间保存在数字的小数部分,所以我尝试使用
SELECT DATEDIFF(SECOND, '1899/12/30 00:00:00.000', GETDATE())
Run Code Online (Sandbox Code Playgroud)
但这会导致溢出错误。
datediff 函数导致溢出。分隔两个日期/时间实例的日期部分数量太大。尝试使用 datediff 和不太精确的日期部分。
我正在尝试将 19 位 Unix 时间戳(例如(五分之一))转换为1558439504711000000可读的日期/时间格式。我的时间戳以 6 个零结尾,这表明时间以纳秒为单位。
我遇到过一些例子,人们使用了我不需要的时区。另一个例子使用 ofEpochSecond ,如下所示:
Instant instant = Instant.ofEpochSecond(seconds, nanos);
Run Code Online (Sandbox Code Playgroud)
但我不确定是否需要使用ofEpochSecond。
下面的代码给出了我实现这一目标的最新方法:
String timeStamp = "1558439504711000000";
long unixNanoSeconds = Long.parseLong(timeStamp);
Date date = new java.util.Date(timeStamp*1000L);
// My preferred date format
SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
String formattedDate = sdf.format(date);
System.out.println("The timestamp in your preferred format is: " + formattedDate);
Run Code Online (Sandbox Code Playgroud)
但我得到的输出是这样的:
// The timestamp in your preferred format is: 11-12-49386951 11:43:20
Run Code Online (Sandbox Code Playgroud)
其中不显示年份格式,例如 2019 格式。
我正在尝试使用以下代码将日期时间从 2019 年 12 月 17 日 19:13:14:850 转换为 17/12/2019 19:13:
string dateTime = "17 Dec 2019 19:13:14:850";
DateTime dt = DateTime.ParseExact(dateTime,"dd:MM:yyyy hh:mm:ss:fff",CultureInfo.InvariantCulture);
string s = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
但收到错误消息为:
字符串未被识别为有效的日期时间。
我试图将我的时间戳从 CST 更改为 EST,但奇怪的是它不起作用,我很清楚为什么。
String timestamp = "Wed Jul 07 10:35:10 CDT 2021";
String formattedTimestamp;
SimpleDateFormat sdfGFTime = new SimpleDateFormat("E MMM dd HH:mm:ss zzz yyyy", Locale.US);
TimeZone obj = TimeZone.getTimeZone("America/New_York");
Date date = null;
sdfGFTime.setTimeZone(obj);
date = sdfGFTime.parse(timestamp);
formattedTimestamp = sdfGFTime.format(date);
System.out.println(formattedTimestamp);
Run Code Online (Sandbox Code Playgroud)
输出:
Wed Jul 07 10:35:10 CDT 2021
Run Code Online (Sandbox Code Playgroud)
预期的:
Wed Jul 07 11:35:10 EST 2021
Run Code Online (Sandbox Code Playgroud)
关于我可能会做什么不正确的任何想法?
我有一个 ZULU 时间戳,必须将其转换为巴黎时区。
ZULU 2022-11-04T06:10:08.606+00:00 --> Paris 2022-11-04T07:10:08.606+01:00
Run Code Online (Sandbox Code Playgroud)
并且必须注意 DST 例如:夏季时间 +2 小时 冬季时间 +1 小时
我编写了以下代码,该代码在本地按预期工作,但在服务器(巴黎)上部署时未按预期工作。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Locale;
public class ParisTime {
public static void main(String[] args) throws ParseException {
// String date = "2022-05-31T23:30:12.209+00:00";
String date = "2022-11-04T06:10:08.606+00:00";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.ENGLISH);
LocalDateTime dateTime = dateFormat.parse(date).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
ZonedDateTime of = ZonedDateTime.of(dateTime, ZoneId.of("Europe/Paris"));
String hourDiff = of.toString().substring(of.toString().indexOf('+') + 1, of.toString().indexOf('+') + 3);
String zonedDateTime = of.plusHours(Integer.valueOf(hourDiff)).toString();
String newDatetime …Run Code Online (Sandbox Code Playgroud) 我已经找到了解决方案,使用PHP 5.3将1357133639816毫秒转换为dd-mm-yyyy h:m:s,并将当前服务器时间转换为上面给出的相同毫秒格式.
此值是来自Android上的SMS的摘录,显示时间值为02-Jan-2012 07:03 PM
我努力寻找和测试在线可用的代码.
PS - http://codepad.org帮助快速执行任何测试代码(如果您可能希望在发布之前测试urs).
基于如何在Java中将标准日期转换为分钟?信息,我按照这种技术将日期转换为分钟,但输出不是预期值(例如,12小时 - >应该是720分钟).
这是我的源代码
SimpleDateFormat sdf = new SimpleDateFormat("hh");
Date theDate = sdf.parse ("12");
long minutes22 = (theDate.getTime() / 1000) / 60;
System.out.println("Minute "+minutes22);
Run Code Online (Sandbox Code Playgroud)
输出为-420.有人可以向我解释一下吗?
<第一个问题解决了,请看评论部分>
新问题是切割String.<问题也解决了,请看评论部分>
对于另一个我尝试做自己的解决方案的输入,但在完成切割字符串后出现问题.我发现重复值不能单独保存.我不知道为什么会发生,因为我保持不同的索引.有什么建议吗?
这是另一个我的另一个源代码.
String date = "Sun 10:00-20:00\r\n" +
"Fri 05:00-10:00\r\n" +
"Fri 16:30-23:50\r\n" +
"Sat 10:00-24:00\r\n" +
"Sun 01:00-04:00\r\n" +
"Sat 02:00-06:00\r\n" +
"Tue 03:30-18:15\r\n" +
"Tue 19:00-20:00\r\n" +
"Wed 04:25-15:14\r\n" +
"Wed 15:14-22:40\r\n" +
"Thu 00:00-23:59\r\n" +
"Mon 05:00-13:00\r\n" +
"Mon 15:00-21:00";
List<String> Hour = new ArrayList<String>();
int loop = …Run Code Online (Sandbox Code Playgroud)