java - Java 函数类似于 C mktime()?
问题描述
我正在将一些代码从 C 移植到 Java。我在C中有如下一行:
time_t t0 = mktime(&EpochTime);
其中 EpochTime 定义为:
struct tm EpochTime;
并且struct tm
定义为:
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after the hour - [0,59] */
int tm_hour; /* hours since midnight - [0,23] */
int tm_mday; /* day of the month - [1,31] */
int tm_mon; /* months since January - [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0,6] */
int tm_yday; /* days since January 1 - [0,365] */
int tm_isdst; /* daylight savings time flag */
};
C库函数根据本地时区time_t mktime(struct tm *timeptr)
将指向的结构体转换timeptr
为值。time_t
在我的 Java 代码中,我可以创建静态类变量以及 setter/getter 来表示结构数据。是否有一个库/技术可以让我实现该mktime()
功能的设计目的?
解决方案
ZoneId zone = ZoneId.systemDefault();
ZonedDateTime dateTime = ZonedDateTime.of(
year + 1900,
month + 1,
dayOfMonth,
hours,
minutes,
seconds,
0, // nanoseconds within second
zone);
long t = dateTime.toEpochSecond();
DayOfWeek wday = dateTime.getDayOfWeek();
int yday = dateTime.getDayOfYear();
推荐阅读
- ios - 蓝牙 LE 后台扫描
- python - python bokeh - 堆叠条形图,分类数据分组和堆叠,n 堆叠系列的案例
- python-3.x - Python 3.7 TypeError:需要一个类似字节的对象,而不是“str”
- java - 如何使用 Firebase 从上传的文件中获取下载 url
- tensorflow - sparse_categorical_crossentropy 的标签平滑
- c++ - 未解析的外部符号(所有符号都已定义!)
- rest - 如何在 Selenium UI 测试运行期间获取响应正文
- javascript - 使用 fromLonLat() 中的变量放置 openlayers 标记(节点 js)
- python - 如何使用python提取具有相同类的所有数据
- python - SQL选择所有日期范围都存在的特定列